Exams/ece241 2014 q7b

  • 题目
  • 分析
  • 代码

题目

地址:HDLBits - Exams/ece241 2014 q7b
详细:

From a 1000 Hz clock, derive a 1 Hz signal, called OneHertz, that could be used to drive an Enable signal for a set of hour/minute/second counters to create a digital wall clock. Since we want the clock to count once per second, the OneHertz signal must be asserted for exactly one cycle each second. Build the frequency divider using modulo-10 (BCD) counters and as few other gates as possible. Also output the enable signals from each of the BCD counters you use (c_enable[0] for the fastest counter, c_enable[2] for the slowest).
The following BCD counter is provided for you. Enable must be high for the counter to run. Reset is synchronous and set high to force the counter to zero. All counters in your circuit must directly use the same 1000 Hz signal.

module bcdcount (
input clk,
input reset,
input enable,
output reg [3:0] Q
);

module top_module (
input clk,
input reset,
output OneHertz,
output [2:0] c_enable
);

分析

题目使用3个0-9的计数器来实现时钟分频功能。若仅使用一个bcdcount分频,每计数10次,OneHertz输出为高,那么可以实现10分频,即100Hz。如果counter0每计数10次,counter1计数1次,那么counter1计数10次时OneHertz为高,则可以实现100分频,即10Hz。同理,三个bcdcount可以实现1000分频,即1Hz。

  1. 采用组合逻辑电路使能三个bcdcount,容易理解,reset不为1时,counter0始终在计数,c_enable[0]=1’b1;
  2. 仅当counter0计数10次(q0==4’d9)时,counter1计数1次,也就是counter0计数10个时钟周期后,下一时钟周期counter1计数,c_enable[1]=1’b1;
  3. 当counter1计数10次时(q1==4’d9),counter1会保存q1==4’d9十个时钟周期才会变回0,即需要counter0==4’d9才会再次变化。所以counter2有效的时钟周期为counter1==4’d9的情况下,counted0==4’d9的下一时钟周期。所以q1==4’d9 && q0==4’d9时c_enable[2]=1’b1。
  4. 根据最终得到的波形图可以看到,要求的OneHertz输出并不是频率为1Hz、占空比为50%的时钟,而是频率为1Hz、宽度为一个clk时钟周期的的脉冲。所以,OneHertz为高的条件为q2==4’d9 && q1==4’d9 && q0==4’d9。

代码

module top_module (input clk,input reset,output OneHertz,output [2:0] c_enable
); //reg [3:0] q0,q1,q2;always @(*) beginif(reset) beginc_enable <= 3'b000;endelse beginc_enable[0] = 1'b1;if(q0==4'd9) c_enable[1] = 1'b1;else c_enable[1] = 1'b0;if(q1==4'd9 && q0==4'd9)c_enable[2] = 1'b1;else c_enable[2] = 1'b0;       endendassign OneHertz = (q2==4'd9 && q1==4'd9 && q0==4'd9);   bcdcount counter0 (clk, reset, c_enable[0],q0);bcdcount counter1 (clk, reset, c_enable[1],q1);bcdcount counter2 (clk, reset, c_enable[2],q2);
endmodule

HDLBits在线练习题之Exams/ece241 2014 q7b相关推荐

  1. 【小罗的hdlbits刷题笔记2】补码运算中溢出的问题(Exams/ece241 2014 q1c)

    关于补码运算中进位溢出的问题及延伸,hdlbits中Exams/ece241 2014 q1c给出了很好的解释,首先来看问题: Assume that you have two 8-bit 2's c ...

  2. Verilog刷题HDLBits——Exams/ece241 2014 q7a

    Verilog刷题HDLBits--Exams/ece241 2014 q7a 题目描述 代码 结果 题目描述 Design a 1-12 counter with the following inp ...

  3. Exams/ece241 2014 q4经验

    总结:模块命名注意不能与内置模块同名 Given the finite state machine circuit as shown, assume that the D flip-flops are ...

  4. Exams/ece241 2014 q5b_HDLbits

    1.The following diagram is a Mealy machine implementation of the 2's complementer. Implement using o ...

  5. HDLBits: 在线学习 SystemVerilog(五)-Problem 19-23

    HDLBits: 在线学习 SystemVerilog(五)-Problem 19-23 HDLBits 是一组小型电路设计习题集,使用 Verilog/SystemVerilog 硬件描述语言 (H ...

  6. python django 在线练习题系统

    python django 在线练习题系统 Pythondjango 在线考试系统 基于python Django的在线考试系统 后端:python django 数据库:MySQL 前端:html ...

  7. HDLBits Exams/ece241 2013 q4 水库题

    题目和简述 题目内容翻译: 大型水库可为多个用户提供服务.为了使水位足够高,三个传感器以5英寸的间隔垂直放置.当水位高于最高传感器(S3)时,输入流量应为零.当液位低于最低传感器(S1)时,流量应最大 ...

  8. 在线分享Oracle尖峰时刻--2014年中秋节尖峰在线福利!

    **********************************************************             2014年中秋节尖峰在线福利! ************* ...

  9. HDLBits: 在线学习 SystemVerilog(十七)-Problem 106-114(移位寄存器)

    HDLBits 是一组小型电路设计习题集,使用 Verilog/SystemVerilog 硬件描述语言 (HDL) 练习数字硬件设计~ 网址如下: https://hdlbits.01xz.net/ ...

  10. 在线练习题库python_有哪些 python 的在线练习题或编程挑战的网站?

    10个锻炼编程技能的网站,拿走不谢! 一.LeetCode(有中文) 力扣(LeetCode)源自美国硅谷,是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌.已经成为程序员找工作前必刷的网址 ...

最新文章

  1. 【干货】机器学习经典书PRML 最新 Python 3 代码实现,附最全 PRML 笔记视频学习资料...
  2. 什么是按位移位(位移)运算符以及它们如何工作?
  3. 关于C++14:你需要知道的新特性
  4. linux 下安装JDK
  5. this的用法this.name=name 这个什么意思
  6. python36 mysql_python-day36(初识MySQL数据库)
  7. 来学习几个简单的Hive函数啦
  8. mysql滚动条不见了,11-JS处理滚动条
  9. mysql数据库是以表为单位存储的,创建一个以数据库名称为参数的MySQL存储过程,以列出具有特定数据库中详细信息的表。...
  10. Python脚本的“__name__”属性
  11. php swfobject,SWFObject基本用法实例分析_javascript技巧
  12. 51单片机实现浮点数四则运算计算器(C语言的偏软硬件实现)
  13. 使用R进行文本数据挖掘
  14. win7 U盘安装和激活
  15. 百度Java出现:“现在学java的都是傻子”相关搜索!
  16. kettle使用命令行来运行ktr和kjb文件
  17. 这是一份优秀的餐饮行业微信营销解决方案
  18. Android Studio Build failed(出现 gradle sync failed 问题)解决方法
  19. python怎么把字体变大_Pycharm 字体大小调整设置的方法实现
  20. 定义Point类,采用友元类的方式计算两个点之间的水平和垂直距离

热门文章

  1. 数列极限:重要极限 π 与 e
  2. sqrt方法复杂度探讨
  3. c语言中 用sqrt引用包,sqrt在c语言中怎么用
  4. Python数据处理之数据聚合
  5. pyspark运行ALS推荐算法
  6. java学习第114天,p699-706(05/12),完成QQ群发
  7. uniapp本地数据库_App/uni-app离线本地存储方案
  8. 网红框架FastAPI能否补足python饱受诟病的速度
  9. 内网网段范围_局域网IP段有哪些 - 卡饭网
  10. photoshop快速去掉图片背景颜色(白色背景)