Module Verilog组合逻辑

Module Verilog组合逻辑,module,verilog,Module,Verilog,我试图在Verilog中实现以下逻辑等式: A1'*B1+A1'*A0'*B0+A0'*B1*B0 其中A1、A0、B1、B0为输入,“表示否定”。这是我第一次尝试用Verilog进行编码,我想看看我是否走上了正确的轨道。任何帮助都将不胜感激 这就是我所做的: 1 module HW7P1( A1, A0, B1, B0, O ) 2 input A1, A0, B1, B0 3 output reg O; 4 5 always @( A1 or A0 o

我试图在Verilog中实现以下逻辑等式:

A1'*B1+A1'*A0'*B0+A0'*B1*B0

其中A1、A0、B1、B0为输入,“表示否定”。这是我第一次尝试用Verilog进行编码,我想看看我是否走上了正确的轨道。任何帮助都将不胜感激

这就是我所做的:

1 module HW7P1( A1, A0, B1, B0, O )
2      input A1, A0, B1, B0
3      output reg O;
4     
5      always @( A1 or A0 or B1 or B0 )
6      begin
7          if( !A1 && B1 ) begin
8              O <= 1;
9      end else if( !A1 && !A0 && B0 ) begin
10             O <= 1;
11     end else if( !A0 && B1 && B0 ) begin
12             O <= 1;
13     end else begin
14             O <= 0;
15     end
16     end
1模块HW7P1(A1、A0、B1、B0、O)
2输入A1、A0、B1、B0
3输出寄存器O;
4.
5始终@(A1或A0或B1或B0)
6开始
7如果(!A1和B1)开始

8 O我相信以下连续赋值相当于您的逻辑方程:

wire O = (!A1&B1) | (!A1&A0!&B0) | (!A0&B1&B0);
您应该创建一个测试台,以证明这是您想要的逻辑。

如果您没有安装模拟器,请尝试。