verilog学习记录(4)——简单纯组合逻辑验证

目录

一、加法器

1.1 半加器原理图

1.2 半加器真值表

1.3 全加器原理图

1.4 全加器真值表

1.5 加法器

二、乘法器

2.1 源码

2.2 RTL综合

2.3 仿真代码

2.4 仿真波形


一、加法器

1.1 半加器原理图

1.2 半加器真值表

C=A*B

S=A'B+AB'

1.3 全加器原理图

1.4 全加器真值表

Ci-1相邻低位进位数;Ai被加数;Bi加数;Si本位和;Ci相相邻高位进位数。

一位全加器的表达式如下两种:

由原理图我们不难看出,全加器由两个半加器组成,半加器1的输入是A,B两个加数,经过半加器1后求得进位与本位和,进位与前级进位进入半加器2求得本位和与进位,半加器1与半加器2进位经与门求得向相邻下一位的进位。

1.5 加法器

源码:

module add_sour(
    input [3:0] X,Y,
    output [3:0] sum,
    output C
    );
    assign {C,sum} = X+Y;
endmodule

RTL仿真:

仿真测试文件源码:

module add_sim();
    reg[3:0] X,Y;
    wire[3:0] sum;
    wire C;
    initial
        begin
            X=4'b0001;
            Y=4'b0111;
        end
     add_sour m
            (
            .X(X),
            .Y(Y),
            .sum(sum),
            .C(C)
            );
endmodule

仿真波形图:

二、乘法器

2.1 源码

module combinatorial_logic_sour(
   input [3:0] X,Y,
    output [7:0] M
//    output C
    );
    assign M= X*Y;
endmodule

2.2 RTL综合

2.3 仿真代码

module combinatorial_logic_sim;
   reg[3:0] X,Y;
    wire[7:0] M;
//    wire C;
    initial
        begin
            X=4'b0010;
            Y=4'b0111;
        end
     combinatorial_logic_sour m
            (
            .X(X),
            .Y(Y),
            .M(M)
//            .C(C)
            );
endmodule

2.4 仿真波形

工程文件获取:

链接:https://pan.baidu.com/s/1n5LxmknJhX2ITwFMFPz89w 

提取码:j7ou 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钱多多小姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值