Verilog编程基础练习

一、3-8译码器

简介

3-8译码器是一种数字电路,用于将3位输入信号转换为8位输出信号。它通常用于将特定的输入模式映射到对应的输出模式,常见的应用包括控制逻辑电路和显示驱动电路。3-8译码器可以帮助简化复杂的逻辑设计,并且在数字系统中起着重要的作用。

Logisim绘制3-8译码器电路图

逻辑真值表

3-8逻辑真值表如下

Verilog编程生成的RTL电路

代码如下(always中的case实现)

生成的RTL电路如下

问题

Verilog代码设计的3-8译码器模块的输出信号 为何要定义为 reg类型而不用默认wire(导线)类型?改成wire型是否可以? (即是否可以把 output reg [7:0] out  改为 output  [7:0] out) 修改后会出现什么错误?为什么会出错?

Verilog代码设计的3-8译码器模块的输出信号定义为reg类型是因为它需要在模块内部进行存储和更新。如果定义为wire类型,它只能用于连接模块之间的信号传输,不能在模块内部进行存储和更新。

如果将输出信号从reg类型改为wire类型,会出现以下错误:

在模块内部无法对输出信号进行赋值,因为wire类型只能被连线赋值,不能被显式赋值。
如果其他模块连接到这个译码器模块的输出端口,它们可能会无法读取正确的输出值,因为wire类型的值只能由单个驱动器驱动,而不能被多个驱动器驱动。

因此,为了确保模块的功能正确性和可靠性,输出信号应该定义为reg类型。

二、1位全加器

Veirlog

门级描述代码如下

module WXB(A, B, Cin, Sum, Cout);
    input    A,B,Cin;
    output    Sum,Cout;
    wire    t1,t2,t3,t4;
    and U1(t1,A,B);
    and U2(t2,Cin,A);
    and U3(t3,Cin,B);
    or  U4(Cout,t1,t2,t3);
    xor U5(t4,A,b);
    xor U6(Sum,t4,Cin);
endmodule

所生成的RTL电路图如下

Logisim

1位全加器在Logisim作图如下

三、4位全加器

用4个上面的 “1位全加器” 级联方式构成

Veirlog

功能级描述代码如下

生成的RTL电路如下

Logisim

4位全加器在Logisim作图如下

如有错误请予提出

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值