一、关于Quartus和ModelSim的安装二、关于3-8译码器的实验仿真(一)对比分析Verilog生成的电路原理图和原始设计电路三、关于全加器的实验仿真(一)Verilog的1位全加器和

本文介绍了Quartus和Modelsim的安装,重点讲解了3-8译码器的Verilog实现及其与Logisim的对比,以及全加器的门级和行为级描述。特别解释了Verilog中reg和wire类型的区别,以及在设计中的应用。
摘要由CSDN通过智能技术生成

一、关于Quartus和ModelSim的安装
请自行搜索方法,比较简单,本文使用quartus ii 13.1和Modelsim SE-10.4进行练习。

二、关于3-8译码器的实验仿真
(一)对比分析Verilog生成的电路原理图和原始设计电路
使用Logsim绘制一个3-8译码器的电路图:
利用Verilog代码生成RTL电路图:在Modelsim中仿真分析生成波形图和transcript结果:

通过对比,可以看出两者的电路图思路是一样的,不过verilog生成的电路图把中间复杂的接线部分改成了一个模块,看起来更简洁。
同时,仿真测试的结果与真值表是一致的。

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

分析:在Verilog中,reg类型表示寄存器类型,用于always模块内被赋值的信号。而wire类型表示导线类型,用于always模块内未被赋值的信号。因为3-8译码器模块的输出信号out是在always块中被赋值的,所以必须定义为reg类型。如果将output reg [7:0] out改为output [7:0] out,会出现“Multiple drivers”错误,因为wire类型的信号可以有多个驱动器,而reg类型的信号只能有一个驱动器。因此,如果将out定义为wire类型,会出现多个驱动器的情况,从而导致错误。

三、关于全加器的实验仿真

(一)Verilog的1位全加器和4位全加器(门级描述方式)
1.一位全加器:

Verilog代码1位全加器RTL电路图:对比1位全加器logisim电路:

2.四位全加器

Verilog代码:4位全加器RTL电路图:对比4位全加器logisim电路:

(二)Verilog的1位全加器和4位全加器(行为级描述方式)
1.一位全加器

Verilog代码:1位全加器RTL电路图:对比1位全加器logisim电路:

2.四位全加器

Verilog代码:4位全加器RTL电路图:对比4位全加器logisim电路:

(三)Verilog的8位全加器模块设计

Verilog代码:生成的RTL电路图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值