深圳市航顺芯片技术研发有限公司
直播中

陈丽

7年用户 1520经验值
私信 关注
[问答]

怎样通过ena使能端去控制16路D触发器呢

怎样去创建一个16路D触发器?
怎样通过ena使能端去控制16路D触发器呢?

回帖(1)

廖丽霞

2021-9-16 17:47:32
本题中需要创建一个 16 路 D触发器。部分情况下,只需要多路触发器中的一部分触发器工作,此时可以通过 ena 使能端进行控制。使能端 ena 信号有效时,触发器在时钟上升沿工作。
byteena 使能信号以 byte 为单位管理 8 路触发器在时钟边沿触发与否。byteena [1] 作为 d[15:8] 高位字节的使能端,byteena [0] 则控制 d 的低位字节。
resetn 为同步,低电平有效复位信号。
所有的触发器在时钟上升沿被触发。
解答与分析

在按照上述的思路写代码时,注意不要在判断 byteena 时将 if.。.if 结构写成 if..else if 。。结构,这样会在 byteena = 2‘b11 时产生只判断 byteena [1],忽略 byteena [0] 的逻辑错误。
本题也可以从例化的思路进行,例化16 路带有使能端的触发器,分别将 byteena 作为高 8 位与低 8 位触发器的使能信号。
从做题的角度来说,作者曾搞反了两个使能信号导致了错误,所以做题要注意细节。
Problem 86 : D latch(Exams/m2014 q4a)
本题中需要实现一个如下的电路:

从做题的角度来说,首先你得认识这个元件。同 D触发器相比,这个元件没有 clk 端口,取而代之的是 ena 端口,所以这是一个锁存器。锁存器的特征在于,相较于 D触发器的触发事件发生于 clk 时钟的边沿,锁存器锁存的触发事件发生于使能端 ena 的电平。
当你成功实现了这个锁存器时,Quartus 会提醒(祝贺)你生成了一个锁存器。锁存器相比触发器会消耗更多的资源,所以综合器会在推断出锁存器时产生提醒,防止开发者在不想使用锁存器时,因为代码风格等原因误产生了锁存器。
解答与分析

产生锁存器的代码很简单,不是么?因为锁存器的触发事件不是时钟,所以只有在组合逻辑中才能产生锁存器,作者曾经还就锁存器做过一番探究:
ljgibbs:Verilog 实验台(二):综合器,我想要一个锁存器 zhuanlan.zhihu.com

Problem 87 : DFF (Exams/m2014 q4b)
本题中需要实现一个如下的电路:

AR 代表 asynchronous reset,所以这是一个带有异步复位的 D 触发器,我们在先前的题目中讨论过异步复位的问题。
图中的三角形代表时钟,不再用 CLK 标出。
解答与分析

本题中需要实现一个如下的电路:

R 代表 synchronous reset,(就不用 SR 或者 SSR 表示了)所以这是一个带有同步复位的 D 触发器,我们在先前的题目中讨论过同步复位的问题。
解答与分析

本题中需要实现一个如下的电路:

图中有一个 D 触发器与一个异或门,触发器的输出 q 和输入信号 in 一起作为异或门的输入。异或门的输入作为触发器的输入 d
解答与分析

在编写 Verilog 时,使用 ^ 符号抽象实现异或门。使用异或门的输出作为触发器的输入。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分