Logic 单边和双边表达式(Verilog)
我试图描述一个SN74ALS193元素,它是一个4位上下二进制计数器。真值表是:Logic 单边和双边表达式(Verilog),logic,verilog,hdl,Logic,Verilog,Hdl,我试图描述一个SN74ALS193元素,它是一个4位上下二进制计数器。真值表是: R C In Dec H X X X L L X X L H H H L H pe H L H H pe - In - increment (counting up) - Dec - decrement (counting down) - pe - positive edge “R”输入端的正脉冲将计数器(Q)的输出重置为0000C'是启用
R C In Dec
H X X X
L L X X
L H H H
L H pe H
L H H pe
- In - increment (counting up)
- Dec - decrement (counting down)
- pe - positive edge
“R”输入端的正脉冲将计数器(Q)的输出重置为0000C'是启用信号
我的代码是:
module ic_1533ie7(R, C, In, Dec, Q1, Q2, Q3, Q4, CR, BR, D1, D2, D3, D4);
input D1, D2, D3, D4, Dec, In, C, R;
output Q1, Q2, Q3, Q4, CR, BR;
wire [1:4] D;
reg [1:4] Q;
assign D = {D1, D2, D3, D4};
assign {Q1, Q2, Q3, Q4} = Q;
always @(R or C or posedge In or posedge Dec)
begin
if (R)
Q = 0;
else if (C == 0)
Q = D;
else if (In)
Q <= Q + 1;
else if (Dec)
Q <= Q - 1;
end
endmodule
模块ic_1533ie7(R、C、In、Dec、Q1、Q2、Q3、Q4、CR、BR、D1、D2、D3、D4);
输入D1、D2、D3、D4、Dec、In、C、R;
输出Q1、Q2、Q3、Q4、CR、BR;
导线[1:4]D;
reg[1:4]Q;
赋值D={D1,D2,D3,D4};
赋值{Q1,Q2,Q3,Q4}=Q;
始终@(R或C或posedge In或posedge Dec)
开始
if(R)
Q=0;
else如果(C==0)
Q=D;
否则,如果(在)
Q合成器希望始终使用以下两种风格中的一种:
- 无
posedge
或negedge
:这将合成为组合或电平敏感锁存逻辑,具体取决于其编码方式
- 1到3个
posedge
或negedge
。必须有一个时钟信号(时钟信号不能在always块中的任何其他位置引用)。根据支持的单元格,0到2个异步重置/预设。异步重置/预设具有不同的可合成规则集(例如,赋值必须是常量值)。我将不详细介绍,因为FPGA具有有限的带异步复位/预置的边缘tiggered触发器。更改文档以了解支持的内容
如toolic所述,示意图在数据表中。将其用作RTL的参考。要正确地为SN74ALS193建模,您需要3到6个ALYST块(可能需要3到6个ALYST块,这取决于您如何构造它,以及是否使用assign
语句)。合成器需要两种风格之一的ALYST块:
- 无
posedge
或negedge
:这将合成为组合或电平敏感锁存逻辑,具体取决于其编码方式
- 1到3个
posedge
或negedge
。必须有一个时钟信号(时钟信号不能在always块中的任何其他位置引用)。根据支持的单元格,0到2个异步重置/预设。异步重置/预设具有不同的可合成规则集(例如,赋值必须是常量值)。我将不详细介绍,因为FPGA具有有限的带异步复位/预置的边缘tiggered触发器。更改文档以了解支持的内容
如toolic所述,示意图在数据表中。将其用作RTL的参考。要正确建模SN74ALS193,您需要3到6个always块(可能需要3到6个always块,这取决于您如何构造它,以及是否使用assign
语句)。Verilog中是否允许多个“always”块?@AbrahamLincoln是的!顺便说一下,我不知道这个电路的关键点,因为没有时钟信号,所以这个元素不适用于顺序逻辑。但是,正如您所看到的,在真值表(以及数据表)中有“pe”符号表示“in”和“Dec”信号。这怎么可能呢?我刚才简单地看了一下示意图。看起来时钟是由
和Dec中的ANDing生成的。Verilog中是否允许多个“始终”块?@AbrahamLincoln是的!顺便说一下,我不知道这个电路的关键点,因为没有时钟信号,所以这个元素不适用于顺序逻辑。但是,正如您所看到的,在真值表(以及数据表)中有“pe”符号表示“in”和“Dec”信号。这怎么可能呢?我刚才简单地看了一下示意图。看起来时钟是由
和中的ANDing和
Dec生成的。我不懂真值表。什么是输入,什么是输出?什么是R
和C
?@mkrieger1“R”输入的正脉冲将计数器(Q)的输出重置为0000C'是启用信号。您设计的时钟在哪里?对于合成,您不能将任何内容放入灵敏度列表中,因为否则合成器将无法正确解释它,并且可能会给出一些信息error@KaranShah我不是在综合这个,我是想把这个元素从原理图放到Quartus上。原理图上没有时钟信号。你能在这里分享原理图吗?我不懂真值表。什么是输入,什么是输出?什么是R
和C
?@mkrieger1“R”输入的正脉冲将计数器(Q)的输出重置为0000C'是启用信号。您设计的时钟在哪里?对于合成,您不能将任何内容放入灵敏度列表中,因为否则合成器将无法正确解释它,并且可能会给出一些信息error@KaranShah我不是在综合这个,我是想把这个元素从原理图放到Quartus上。原理图上没有时钟信号。您能在这里分享原理图吗?