用Modelsim进行仿真(独热码状态机、SR锁存器延迟模型、位移除法器模型)

以独热码状态机为例
1.用Modelsim软件,点击文件,新建一个工程,如图在这里插入图片描述

2.重命名为work,点击OK,如图
在这里插入图片描述

3.点击新建一个文档,第一个,改变类型为VERILOG,点击OK
在这里插入图片描述

4.接着就开始输入代码,如图
在这里插入图片描述

5.开始运行。运行成功后就会打勾,如图
在这里插入图片描述

6.开始进行编译,选择要编译的文件,如图
在这里插入图片描述
7.开始进行仿真,添加到Wave波形图中,如图
在这里插入图片描述
8.改变数值,就可以得到波形图
在这里插入图片描述
9.SR锁存器延迟模型、位移除法器模型步骤都是一样的,相关截图
第二个实验
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第三个实验
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
10.视频代码链接
热码状态机:https://www.bilibili.com/video/BV1af4y187pa?share_source=copy_web
SR锁存器延迟模型:https://www.bilibili.com/video/BV1KB4y1M72J?share_source=copy_web
位移除法器模型:https://www.bilibili.com/video/BV1wU4y157wb?share_source=copy_web

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在数字电路设计中,锁存器是一种常用的基本电路,用于存储和保持数据,同时也常用于解决时序问题。带异步复位和时钟使能的锁存器是一种特殊的锁存器,具有复位和使能功能,可以更加灵活地控制数据的存储和输出。 下面我们可以通过仿真来验证带异步复位和时钟使能的锁存器的功能。 假设我们需要设计一个带异步复位和时钟使能的D型锁存器,其电路图如下所示: ![image-20211008112218223](https://gitee.com/AmosWoo/markdown-img/raw/master/img/202110081122183.png) 其中,D为数据输入端,Q为数据输出端,CLK为时钟输入端,RESET为异步复位输入端,EN为时钟使能输入端。 我们可以使用Verilog HDL来描述锁存器的行为,代码如下: ```verilog module d_latch( input D, input CLK, input RESET, input EN, output reg Q ); always@(posedge CLK or negedge RESET) begin if(RESET == 0) Q <= 0; else if(EN == 1) Q <= D; end endmodule ``` 在上述代码中,我们使用了always块来描述锁存器的行为,当时钟上升沿到来时,如果RESET信号为0,那么Q被强制置为0;否则,如果EN信号为1,那么Q被置为输入的D值。 接下来,我们可以通过仿真工具来对锁存器的功能进行验证。这里我们使用ModelSim进行仿真仿真条件为:CLK的周期为20ns,RESET和EN的宽度为10ns,D的输入序列为011010。 仿真时序如下所示: ![image-20211008112440756](https://gitee.com/AmosWoo/markdown-img/raw/master/img/202110081124407.png) 从仿真结果可以看出,在时钟上升沿到来时,当RESET为0时,Q被强制置为0;当RESET为1且EN为1时,Q被置为D的值。在仿真的过程中,我们还可以观察到,在RESET和EN信号发生变化时,锁存器的输出也会相应地发生变化。 综上所述,带异步复位和时钟使能的锁存器能够实现数据的存储和输出,并且具有复位和使能功能,可以更加灵活地控制数据的存储和输出。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值