位置: IT常识 - 正文

【HDLBits刷题笔记】10 Counters(最好用的刷题笔)

编辑:rootadmin
Count15 module top_module ( input clk, input reset, // Synchronous active-high reset output Count15module top_module ( input clk, input reset, // Synchronous active-high reset output [3:0] q); always@(posedge clk) begin if(reset) q <= 4'd0; else q <= q + 1'b1; endendmoduleCount10

推荐整理分享【HDLBits刷题笔记】10 Counters(最好用的刷题笔),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:刷题笔真的好用吗,刷题笔多少钱,最好用的刷题笔,刷题笔真的好用吗,刷题笔是什么,刷题笔怎么样,刷题笔是什么,刷题笔是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

题目给的答案把q清零和reset放在了一个if里if (reset || q == 9)。

module top_module ( input clk, input reset, // Synchronous active-high reset output [3:0] q); always@(posedge clk) begin if(reset) q <= 4'd0; else q <= (q<9)?(q+1):0; endendmoduleCount1to10module top_module ( input clk, input reset, output [3:0] q); always@(posedge clk) begin if(reset) q <= 4'd1; else q <= (q<10)?(q+1):1; endendmoduleCountslowmodule top_module ( input clk, input slowena, input reset, output [3:0] q); always@(posedge clk) begin if(reset) q <= 4'd0; else if(slowena) q <= (q<9)?(q+1):0; endendmoduleExams/ece241 2014 q7a

这道题感觉怪怪的,一开始我写的c_load = (Q==12)|reset;由于题目说了count4模块中的load优先级比enable高,所以enable为0时仍可以置数。

【HDLBits刷题笔记】10 Counters(最好用的刷题笔)

而题目貌似是希望load和enable不能冲突,enable为0时就不应该置数了,所以此时的load应该为0,所以我又把信号与上了一个enable。

module top_module ( input clk, input reset, input enable, output [3:0] Q, output c_enable, output c_load, output [3:0] c_d); // count4 the_counter (clk, c_enable, c_load, c_d , Q ); assign c_d = 1; assign c_enable = enable; assign c_load = enable&(Q==12)|reset;endmoduleExams/ece241 2014 q7b

把三个BCD计数器级联在一起即可。一开始我写的c_enable[2]=(Q2==9);OneHertz=(Q3==9);而Q2、Q3都会持续多个周期,只有Q1是一个一直变的信号。

module top_module ( input clk, input reset, output OneHertz, output [2:0] c_enable); // wire [3:0]Q1; wire [3:0]Q2; wire [3:0]Q3; bcdcount counter0 (clk, reset, c_enable[0],Q1); bcdcount counter1 (clk, reset, c_enable[1],Q2); bcdcount counter2 (clk, reset, c_enable[2],Q3); assign c_enable[0]=1'b1; assign c_enable[1]=(Q1==9); assign c_enable[2]=(Q2==9)&&(Q1==9); assign OneHertz=(Q3==9)&&(Q2==9)&&(Q1==9);endmoduleCountbcd

感觉写的稍微有点复杂,利用了verilog里写多个if优先下面的语句的特点,实际不会对一个数重复操作。

实际例化多个BCD计数器会简单很多。

module top_module ( input clk, input reset, // Synchronous active-high reset output [3:1] ena, output [15:0] q); always@(posedge clk) begin if(reset) q <= 'd0; else begin q[3:0] <= q[3:0] + 1; if(ena[1])begin q[3:0] <= 0; q[7:4] <= q[7:4]+1; end if(ena[2])begin q[3:0] <= 0; q[7:4] <= 0; q[11:8] <= q[11:8]+1; end if(ena[3])begin q[3:0] <= 0; q[7:4] <= 0; q[11:8] <= 0; q[15:12] <= (q[15:12]<9)?q[15:12] +1:0; end end end assign ena[1] = (q[3:0]==9); assign ena[2] = (q[7:4]==9)&&ena[1]; assign ena[3] = (q[11:8]==9)&&ena[2];endmoduleCount clock

这道题稍微有点复杂,难度也不算特别大,但是需要耐心debug,把情况全部考虑清楚。

我提交了五次才通过,可恶。

module top_module( input clk, input reset, input ena, output reg pm, output reg[7:0] hh, output reg[7:0] mm, output reg[7:0] ss); always@(posedge clk) begin if(reset)begin pm <= 1'b0; hh <= {4'd1,4'd2}; mm <= 0; ss <= 0; end else if(ena)begin ss[3:0] <= ss[3:0] +1'b1; if(ss[3:0] == 9)begin ss[3:0] <= 'd0; ss[7:4] <= (ss[7:4]==5)?0:(ss[7:4]+1); end if(ss[3:0] == 9&&ss[7:4] == 5)begin if(mm[3:0]<9) mm[3:0] <= mm[3:0] + 1; else begin mm[3:0] <= 'd0; mm[7:4] <= (mm[7:4]==5)?0:(mm[7:4]+1); end end if(ss[3:0] == 9&&ss[7:4] == 5&&mm[3:0] == 9&&mm[7:4] == 5)begin if(hh[3:0]<9&&hh[7:4] == 0) hh[3:0] <= hh[3:0] + 1; else if(hh[3:0]<2&&hh[7:4] == 1) hh[3:0] <= hh[3:0] + 1; else begin if(hh[7:4] == 1) hh[3:0] <= 'd1;//注意这里是1 else hh[3:0] <= 'd0; hh[7:4] <= (hh[7:4]==1)?0:1; end end if(ss[3:0] == 9&&ss[7:4] == 5&&mm[3:0] == 9&&mm[7:4] == 5&&hh[3:0]==1&&hh[7:4]==1) pm<=~pm; end endendmodule
本文链接地址:https://www.jiuchutong.com/zhishi/313192.html 转载请保留说明!

上一篇:苹果系统专用网络优化工具,让你的网络速度暴增(一个人失恋了该怎么安慰她)

下一篇:织梦dedecms使用channelartlist标签显示当前文章高亮(织梦如何使用)

  • 亏损企业需要计提递延所得税资产吗
  • 租赁收入缴纳个人所得税
  • 小规模能否开利息专用发票?
  • 承销债券收取的承销费属于什么收入
  • 报账单大写金额填写方式
  • 转让金融商品的会计分录
  • 耕地占用税的纳税人是谁
  • 固定资产大修理支出标准
  • 原材料盘亏会计分录怎么做
  • 职工取暖费可以一次性发放吗
  • 计提折旧需要减去预计净残值吗
  • 按简易办法计税销售额税率
  • 车的违章处理
  • 固定资产房屋原值增加折旧月数怎么算
  • 计提租金分录怎么处理
  • 支付短期借款计入什么科目
  • 小微企业分公司 企业所得税优惠
  • 百旺红字发票申领流程
  • 税负率的计算公式excel
  • 金融企业同期同类贷款利率计算
  • 汇算清缴之前找回来成本发票可以吗
  • 退税可以分批吗
  • windows10如何关闭左下角的搜索
  • 增值税减免算什么费用
  • 如何解决windows7无法开机
  • 设备安装服务几个点
  • 如何pingip地址
  • mac底部菜单栏不见了快捷键
  • 哪些行业可以简易征收增值税
  • 其他应收款贷方表示什么
  • netsurf.exe - netsurf是什么进程 有什么用
  • 职工教育经费支出包括哪些内容
  • 基建借款属于什么科目
  • PHP:gmstrftime()的用法_Date Time函数
  • 企业的留存收益可以抵税吗
  • 农村个体户需要报税吗
  • 坏账损失的会计分录
  • 前端可以用jsp写吗
  • 【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)
  • iscsiadm命令详解
  • 发票认证的目的和意义
  • dom事件种类
  • 银行存款日记账怎么记账
  • mysql服务开不起来
  • 季报利润总额怎么算
  • 企业所得税该什么科目
  • 出口货物离岸价差异原因说明表在电子税务局的位置
  • SQL Server 2012 FileTable 新特性详解
  • 材料采购的账务怎么处理
  • 物流货损怎样处理
  • 开发研究的定义
  • 其他业务收入如何核算
  • 个人承包公司运输违法吗
  • 工资表的重要性
  • 十二月份没出现问题
  • 公司给别人公司过账应该注意哪些
  • 事业编制可以带计算器吗
  • 快速切换电脑界面
  • 关闭windowsxp窗口的方法有
  • ubuntu文本编辑器怎么打开
  • win10如何删除pin登录密码
  • linux mkdir函数创建多级目录
  • linux php 开发教程
  • win10输入法图标消失
  • windows10x预览版
  • win8系统怎么设置桌面
  • win10的帮助系统在哪
  • opengl绘制球面
  • cordova怎么样
  • linux ls-l命令详解
  • 有关javascript的书
  • js验证正则表达式
  • 安卓中的菜单
  • python动态绑定属性
  • javascript数据结构与算法百度云视频资源
  • 纳税申报之后最迟多久交
  • 上海地铁和公交乘车码
  • 税务局打印申报表
  • 珠宝消费税怎么计算出来的
  • 浙江省税务师事务所排名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设