verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十一章)

《Verilog数字系统设计教程》夏宇闻 第三版思考题
答案合集 : Verilog学习系列 第三部分

1.利用数字电路的基本知识解释,为什么说即使组合逻辑的输入端的所有信号同时变化,其输出端的各个信号不可能同时达到新的值?各个信号变化的快慢由什么决定?

  由于逻辑门和布线有延迟,因此没有办法使实际电路的输出与理想的布尔方程计算完全一致,可以说实际组合逻辑电路输出的瞬间不确定性是无法避免的。所以说即使组合逻辑的输出端的所有信号同时变化,其输出端的各个信号不可能同时达到新的值。各个信号变化的快慢与逻辑门和布线造成的传输延时有关。

2.如果组合逻辑的输入端信号变化非常快,其输出端的逻辑关系能否正确?变化快到什么程度以后,就没有正确的输出?如果还有正确输出,但时间片段很小,有什么办法可以加长正确输出的时间片?

  其输出端的逻辑关系不能确定是否正确。当快到比确定下一个状态所使用的组合电路的延迟都快,就没有正确的输出。在输出端后加一个寄存器,有一个时钟控制,时钟周期宽度尽可能大些。

3.为使运算组合逻辑有一个确定的输出,为什么必须在复杂运算组合逻辑的输人端和输出端增加寄存器组来寄存数据?

  由于逻辑门和布线有延迟,因此没有办法使实际电路的输出与理想的布尔方程计算完全一致,可以说实际组合逻辑电路输出的瞬间不确定性是无法避免的,如果能使组合逻辑电路的输入端稳定一段时间,即所有的输入信号在一段相对较长的时间段里不再发生变化,虽然在稳定时间片段的刚一开始由于冒险竞争现象会产生与理想情况不一致的毛刺或输出不确定的情况,但只要稳定时间片段大于最长的路径延迟,就可以取得组合逻辑电路的理想输出。如果能躲开输出不确定片段,在理想值稳定输出的片刻把该输出端存入寄存器组,则寄存器组中保留的就是该组合逻辑电路的理想输出。

4.对每一个寄存器组来说,上一个时钟的正跳沿是为置数做准备,下一个时钟正跳沿是把本寄存器组置数(并为下一级运算组合逻辑送去输入信号),则为下一级寄存器组的置数做准备的先决条件是什么?

  确定下一个状态所使用的组合电路的延迟和时钟到各触发器的差值必须小于一个时钟周期的宽度。

5.Verilog语法中使用了哪一种赋值符号可以表示与硬件寄存器组实现完全一致的赋值方式?

  用 “<=” 赋值符号刻意表示与硬件寄存器组实现完全一致的赋值方式。

6.一个带使能端的寄存器组能被赋入一个正确的输入值需要哪3个条件?

  (1)启用同步时序逻辑;
  (2)下一个状态所使用的组合电路的延迟和时钟到各触发器的差值必须小于–个时钟周期的宽度;
  (3)使能端被使能。

7.为什么建议大家采用同步时序逻辑来设计数字逻辑电路,异步逻辑有什么不好?

  用 Verilog HDL设计的可综合模块,必须避免使用异步时序逻辑,这不但是因为许多综合器不支持异步时序逻辑的综合,而且因为用异步时序逻辑确实很难控制由组合逻辑和延迟所产生的冒险和竞争。当电路的复杂度增加时,异步时序逻辑无法调试。工艺的细微变化也会造成异步时序逻辑电路的失效。因为异步时序逻辑中触发条件很随意,任何时刻都有可能发生,所以记录状态的寄存器组的输出在任何时刻都能发生变化。而同步时序逻辑中的触发输入至少可以维持一个时钟后才会发生第二次触发。这是一个非常重要的差别,因为可以利用这一时间段,即在下一个触发信号来到之前为电路状态的改变创造一个稳定可靠地条件。·

8.简单叙述不同时钟域模块之间数据准确传送的方法。

  使用RAM(DPRAM)、 FIFO缓冲的方法完成异步时钟域之间的数据传递。在输入端口使用前级时钟写数据,在输出端口使用本机时钟读数据,并有缓冲器空或满的控制信号来管理数据的读写,以避免数据的丢失,可以非常方便准确地完成异步时钟域之间的数据交换。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值