Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logic 单边和双边表达式(Verilog)_Logic_Verilog_Hdl - Fatal编程技术网

Logic 单边和双边表达式(Verilog)

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'是启用

我试图描述一个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'是启用信号

我的代码是:

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上。原理图上没有时钟信号。您能在这里分享原理图吗?