verilog十六分频实现.doc_第1页
verilog十六分频实现.doc_第2页
verilog十六分频实现.doc_第3页
verilog十六分频实现.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FPGA实验实验报告(用计数方法实现一个16分频电路)学院:物理与信息工程学院专业:微电子姓名:汪小东学号:111000529一、 实验目的及要求实验目的:进一步熟悉verilog语言,学会熟练操作modelsim软件,并用它进行仿真,为以后的进一步发展打下良好基础.实验要求:使用计数方法实现一个16分频电路,用Verilog写出电路实现程序以及测试文件.二、实验设备(环境)及要求实验软件:ModelSim SE 6.2b三、实验内容与步骤1. 实验总体设计思路用一个计数器(counter)来计数,当计数器等于7时,让输出结果翻转,同时计数器置零,如此往下.a. 输入端口为有时钟信号clk以及复位信号reset,输出为dout,先用reset信号把clk和dout都清零.b. 在时钟上升沿触发,如果计数器counter等于7,则把dout翻转且把counter清零,否则的话counter自加一.c. 这样的话就可以实现对时钟信号的16分频.2. 测试平台设计模块设计:timescale 1ns/1nsmodule div_16(clk,reset,dout); input clk / 时钟信号input reset; / 清零端reset,且高电平有效 output dout; reg2:0 counter; / 设置一3位计数器 reg dout; always(posedge clk or posedge reset) / 在时钟上升沿和复位端上升沿触发beginif(reset) begin counter=0; dout=0; / 复位端起作用,计数器和输出结果都清零 end else if(counter=7) / 若计数器counter为7,dout翻转且计数器清零 begin dout=dout; counter=0; end else counter=counter+1; / 否则的话计数器自加1 endendmodule /结束Tesetbench如下:timescale 1ns/1nsmodule div_bench;reg clk;reg reset; wire dout; div_16 d1(clk,reset,dout); / 实例化 always begin / 对时钟信号clk赋值 #10 clk=0; #10 clk=1; end initial begin reset=1; / 对复位信号reset赋值 #5 reset=0; #1000 $finish; / 1000ns仿真结束 end initial $monitor(dout changed to %b at time %t,%b,dout,$time);/监视输出结果Endmodule /结束四、实验结果与数据处理1. Modelsim仿真结果,波形图。仿真结果波形图如下:上图中第一条线是时钟信号(clk),第二条是复位信号(reset),第三条是输出结果(dout),第四条是设置的三位计数器(conuter),复位信号在0时刻清零此时dout和counter都复位,5秒时复位信号失去作用,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论