我是靠谱客的博主 瘦瘦发带,最近开发中收集的这篇文章主要介绍verilog adc代码_HDLBits:在线学习 Verilog (十八 · Problem 85-89),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本系列文章将和读者一起巡礼数字逻辑在线学习网站 HDLBits 的教程与习题,并附上解答和一些作者个人的理解,相信无论是想 7 分钟精通 Verilog,还是对 Verilog 和数电知识查漏补缺的同学,都能从中有所收获。

首先附上传送门:

Dff16e - HDLBits​hdlbits.01xz.net

Problem 85 : DFF with byte enable(Dff16e)

本题中需要创建一个 16 路 D触发器。部分情况下,只需要多路触发器中的一部分触发器工作,此时可以通过 ena 使能端进行控制。使能端 ena 信号有效时,触发器在时钟上升沿工作。

byteena 使能信号以 byte 为单位管理 8 路触发器在时钟边沿触发与否。byteena [1] 作为 d[15:8] 高位字节的使能端,byteena [0] 则控制 d 的低位字节。

resetn 为同步,低电平有效复位信号。

所有的触发器在时钟上升沿被触发。

解答与分析

module 

在按照上述的思路写代码时,注意不要在判断 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 会提醒(祝贺)你生成了一个锁存器。锁存器相比触发器会消耗更多的资源,所以综合器会在推断出锁存器时产生提醒,防止开发者在不想使用锁存器时,因为代码风格等原因误产生了锁存器。

解答与分析

module 

产生锁存器的代码很简单,不是么?因为锁存器的触发事件不是时钟,所以只有在组合逻辑中才能产生锁存器,作者曾经还就锁存器做过一番探究:

ljgibbs:Verilog 实验台(二):综合器,我想要一个锁存器​zhuanlan.zhihu.com

Problem 87 : DFF (Exams/m2014 q4b)

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

AR 代表 asynchronous reset,所以这是一个带有异步复位的 D 触发器,我们在先前的题目中讨论过异步复位的问题。

图中的三角形代表时钟,不再用 CLK 标出。

解答与分析

module 

Problem 88 : DFF (Exams/m2014 q4c)

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

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

解答与分析

module 

Problem 89 : DFF+gate(Exams/m2014 q4d)

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

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

解答与分析

module 

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

最后

以上就是瘦瘦发带为你收集整理的verilog adc代码_HDLBits:在线学习 Verilog (十八 · Problem 85-89)的全部内容,希望文章能够帮你解决verilog adc代码_HDLBits:在线学习 Verilog (十八 · Problem 85-89)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部