



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
...wd......wd......wd...流水灯实验报告实验二流水灯实验目的学会编写一个简单的流水灯程序并掌握分频的方法。熟悉Modelsim仿真软件的使用。实验要求用Quartus编写流水灯程序,在Modelsim软件中进展仿真。实验仪器和设备硬件:计算机软件:Quartus、Modelsim、〔UE〕实验内容将时钟周期进展分频。编写Verilog程序实现LED等依次亮灭,用Modelsim进展仿真,绘制波形图。实验设计〔一〕分频原理时钟周期f为50MHz,周期T为1/f,即20ns。假设想得到四分频计数器,即周期为80ns的时钟,需要把时钟进展分频。即每四个时钟周期合并为一个周期。原理图如图1所示。图1四分频原理图〔二〕流水灯设计思路1、实现4盏LED灯依次隔1s亮灭,即周期为1s;2、计算出频率f为1/T=1Hz;3、设置计数器cnt,当检测到clk上升沿时开场计数,当cnt计数到24_999_999时,clk_4跳变为1,LED灯亮起,当cnt计数49_999_999时,clk_4置0,LED灯熄灭。4、给LED赋初值4’b0001,第一盏灯亮。5、利用位拼接,实现循环。〔三〕设计框图图2设计根本框图〔四〕位拼接的用法假设输入a=4'b1010,b=3'b101,c=4'b0101,想要使输出d=5'b10001用位拼接,符号“{}〞:d<={b[2:1],c[1],a[2:1]}即把b的低1~2位10,c的低1位0,a的低1~2位01拼接起来,得到10001。流水灯4'b00014'b00104'b01004'b1000相当于把低三位左移,并最高位放在最低位。用位拼接可写为:led<={led[2:0],led[3]};低三位最高位实验方法和步骤〔一〕时钟分频编写分频程序。编写测试程序。进展仿真,波形如图3所示。图3分频仿真结果〔二〕流水灯1、编写分频程序。编写测试程序。3、进展仿真,为了节约时间和方便观察波形,将计数器值分别改为24、49跳转。波形如图4所示。图4流水灯仿真结果实验参考程序时钟分频1、程序文件modulediv_clk( //模块名与文件名一致。定义端口列表,input wire clk, //输入线型input wire rst_n,output reg clk_4 //输出定义为存放器型);reg[3:0] cnt; //中括号定义位宽,定义中间变量cnt always@(posedgeclk) if(rst_n==0) cnt <= 0; //复位为0,计数器也为0 elseif(cnt==3) //当计数器=3时清零〔可用elseif〕 cnt <= 0; else cnt <= cnt+1; //计数器自加1always@(posedgeclk) if(rst_n==0) clk_4 <= 0; //复位为0.clk_4为0 elseif(cnt==1) clk_4 <= 1; //当计数器为1时,时钟跳变为1 elseif(cnt==3) clk_4 <= 0; //当计数器为3时,时钟跳变为0endmodule 2、测试文件`timescale 1ns/1nsmoduletb_div_clk();reg clk;reg rst_n;wireclk_4;initial begin clk = 0; rst_n = 0; #100 rst_n = 1; endalways #5 clk=~clk;div_clkdiv_clk_inst(.clk(clk),.rst_n(rst_n),.clk_4(clk_4) );endmodule流水灯程序文件moduleLSD( //模块名与文件名一致。定义端口列表,input wire clk, //输入线型input wire rst_n,output reg[3:0] led);reg[25:0] cnt; //中括号定义位宽,定义中间变量cnt reg clk_4; always@(posedgeclk) if(rst_n==0) cnt <= 0; //复位为0,计数器也为0 elseif(cnt==49_999_999) //当计数器=49999999时清零〔可用elseif〕 cnt <= 0; else cnt <= cnt+1; //计数器自加1always@(posedgeclkornegedgeclk) //异步复位 if(rst_n==0) clk_4 <= 0; //复位为0.clk_4为0 elseif(cnt==24_999_999) clk_4 <= 1; //当计数器为24999999时,时钟跳变为1 elseif(cnt==49_999_999) clk_4 <= 0; //当计数器为49999999时,时钟跳变为0 else clk_4 = clk_4; always@(posedgeclk_4ornegedgeclk_4) if(rst_n==0) led <= 4'b0001; else led <= {led[2:0],led[3]};//位拼接endmodule 测试文件`timescale 1ns/1nsmoduleLSD();reg clk;reg rst_n;reg cnt;wireled;initial begin clk = 0; rst_n = 0; #100 rst_n = 1; endalways #5 clk=~clk;LSDLSD_inst(.clk(clk),.rst_n(rst_n),.led(led) );endmodule实验小结做实验要养成良好的习惯,每次做实验时,都要建设一个新的文件夹存放实验所需的程序文件,为仿真时添加文件做准备,也方便以后的查找和使用。写程序前要想清楚电路实现原理,根据所学数电知识对各个元器件进展控制。写程序时注意排版美观整洁,同时注意添加注释。注意程序中模块名要和文件名一致,否则程序报错,无法编译通过。仿真时,可以选择不同的进制。在想要更改的地方右键,选择【Radi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五保安服务外包合同范例
- 二手车库转让合同二零二五年
- 二零二五版劳动合同法工资与劳动报酬
- 酒店工程门合同范本
- 新疆房子过户合同范本
- 2025林地果园承包合同模板
- 2025年巴音郭楞职业技术学院高职单招(数学)历年真题考点含答案解析
- 2025年山西职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年山东水利职业学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- ICU基础知识课件
- 2024年郑州黄河护理职业学院单招职业适应性测试题库及答案解析
- 生产直通率记录表
- 2024年部编版五年级下册语文第七单元综合检测试卷及答案
- 医疗依法执业培训课件
- 施工现场安全围挡
- 拐杖及助行器的使用方法课件
- 中央环保督察迎战培训课件
- 风湿免疫科学教学设计案例
- 妊娠合并梅毒护理查房课件
- 2023小米年度报告
- 修大坝施工方案
评论
0/150
提交评论