用veriloghdl设计计数器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用Verilog HDL设计计数器
一、实验目的
1. 学习使用Verilog HDL语言,并学会使用进行QuartusⅡ软件编
程和仿真;
2. 掌握数字电路的设计方法,熟悉设计过程及其步骤;
3. 培养学生的动手能力,能学以致用,为今后从事电子线路设计
打下良好基础;
4. 巩固加深对数电知识的理解,在仿真调试过程中,能结合原理
来分析实验现象;
二、实验内容
1.设计内容及要求
1)利用Verilog HDL设计一个以自己学号后三位为模的计数器;
2)编写源程序;
3)给出仿真电路图和仿真波形图;
2.需求分析:
由于本人的学号后3位为212,所以应编一个以212为模的加法计数器。若采用同步清零的方法,则计数为0~211,化为二进制数即为0 0000 0000计到0 1101 0011。
3.编写源代码:
module count_212(out,data,load,reset,clk);
output [8:0] out;
input [8:0] data;
input load,reset,clk;
reg [8:0] out;
always @(posedge clk)
+
<
计数器功能表
Clk Reset Load Out
上升沿0X清零
上升沿10置数(data)
上升沿11计数
2. 应熟知计数器的使用方法,并能设计出任意进制的计数器,在设计时才能得心应手。计数进制的改变,包括清零法(同步清零和异步清零)和置数法。假定计数器的计数进制为N,要将其改为M进制的计数器,M < N 。当计数器从全零状态开始计数,若采用同步清零法,设计时应经过M-1个状态后清零;若采用异步清零法,设计时应经过M个状态后清零。这样就跳过了M个状态,实现了M进制计数器。因为采用异步清零法会产生清零不可靠的问题,本实验采用的为同步清零法。
3. 本实验采用的是数据流描述方式来描述电路,通过assign 连续赋值实现组合逻辑功能,使用简单,语句易于读懂。
4. 调试过程中,应沉着冷静,出现错误时,应该根据数电知识原理来分析,找
出错误原因,对症下药;也可上网搜查该错误的含义,可能是软件的使用方法不对。