我试图在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
我在这里做错了吗?
答案 0 :(得分:1)
我相信以下连续分配等同于你的逻辑方程式:
wire O = (!A1&B1) | (!A1&A0!&B0) | (!A0&B1&B0);
您应该创建一个测试平台来证明这是您想要的逻辑。