verilog十六分频实现.doc

verilog十六分频实现.doc

ID:48580334

大小:38.50 KB

页数:5页

时间:2020-02-26

verilog十六分频实现.doc_第1页
verilog十六分频实现.doc_第2页
verilog十六分频实现.doc_第3页
verilog十六分频实现.doc_第4页
verilog十六分频实现.doc_第5页
资源描述:

《verilog十六分频实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《FPGA实验》实验报告(用计数方法实现一个16分频电路)学院:物理与信息工程学院专业:微电子姓名:汪小东学号:111000529一、实验目的及要求实验目的:进一步熟悉verilog语言,学会熟练操作modelsim软件,并用它进行仿真,为以后的进一步发展打下良好基础.实验要求:使用计数方法实现一个16分频电路,用Verilog写出电路实现程序以及测试文件.二、实验设备(环境)及要求实验软件:ModelSimSE6.2b三、实验内容与步骤1.实验总体设计思路用一个计数器(counter)来计数,当计数器等于7时,让输出结果翻转,同时计数器置零,如

2、此往下.a.输入端口为有时钟信号clk以及复位信号reset,输出为dout,先用reset信号把clk和dout都清零.b.在时钟上升沿触发,如果计数器counter等于7,则把dout翻转且把counter清零,否则的话counter自加一.c.这样的话就可以实现对时钟信号的16分频.2.测试平台设计模块设计:`timescale1ns/1nsmodulediv_16(clk,reset,dout);inputclk//时钟信号inputreset;//清零端reset,且高电平有效outputdout;reg[2:0]counter;//设

3、置一3位计数器regdout;always@(posedgeclkorposedgereset)//在时钟上升沿和复位端上升沿触发beginif(reset)begincounter=0;dout=0;//复位端起作用,计数器和输出结果都清零endelseif(counter==7)//若计数器counter为7,dout翻转且计数器清零begindout=~dout;counter=0;endelsecounter=counter+1;//否则的话计数器自加1endendmodule//结束Tesetbench如下:`timescale1ns/

4、1nsmodulediv_bench;regclk;regreset;wiredout;div_16d1(clk,reset,dout);//实例化alwaysbegin//对时钟信号clk赋值#10clk=0;#10clk=1;endinitialbeginreset=1;//对复位信号reset赋值#5reset=0;#1000$finish;//1000ns仿真结束endinitial$monitor("doutchangedto%battime%t,%b",dout,$time);//监视输出结果Endmodule//结束四、实验结果与数

5、据处理1.Modelsim仿真结果,波形图。仿真结果波形图如下:上图中第一条线是时钟信号(clk),第二条是复位信号(reset),第三条是输出结果(dout),第四条是设置的三位计数器(conuter),复位信号在0时刻清零此时dout和counter都复位,5秒时复位信号失去作用,clk10ns开始产生,并且周期为20ns,从仿真波形图中可以看出,dout的周期变为clk的16倍,也就是16分频,这正是我们期望的.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。