




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综合试验报告第四组组长:韩欢02081535陈洁钰02081536侯旭涛02081514高耀02081510李欣昊02081508李昊02081506FPGA根底试验之流水灯一、试验目的QuartusIIVerilog语言的编程方法。学习简洁时序电路的设计分析和硬件测试。二、试验内容生疏信号产生板中的FPGA的一般I/O的连接;Verilog语言的编程产生相应时序;QuartusIICycloneFPGA的程序开发、编译与调试;把握Cyclone系列FPGA的程序加载,娴熟把握将.sof文件加载到试验板的FPGA中,实现流水灯的效果。三、试验原理流水灯,顾名思义就是让LED像水一样的点亮。假设把流水做慢动作播放,初始状态时,四个灯都不亮,每来一个时钟脉冲,CLK,计数器就加1.这样通过向右流水的现象;反之,向左流水。四、试验要求4LED进展花式显示,依据硬件设施设计两种模式:S0:从全亮到全灭,再到全亮,依次循环;S1:从LED0开头依次点亮,为LED1亮,LED2亮,LED3LED2亮,LED1亮,LED0亮,不停循环。即输出为:S0时,不断循环。五、试验步骤建立工程Verilog文件,编写相关程序verilog文件编译为可视化电路图文件将可视化电路图文件添加输入输出组合成电路图文件编译语法及验证原理图依据需要安排管脚并进展编译.so〔在线方式.po〔离线方式线方式。显示试验结果六、电路符号:流水灯的电路符号如以以下图所示。sw1为模式选择输入。rst_n为复位信号,接高电平,sys_clk为时钟信号输入,led[3..0]LED显示信号输出端。liushuidengliushuidengsw1sys_clkrst_nled[3..0]inst七:设计方法:承受文本编辑法,即利用verilogHDL语言描述流水灯,代码如下:moduleliushuideng(sw1,sys_clk,rst_n,led);//接口定义//50MHz,复位输入output[3:0]led;//输出:3led产生流水现象,轮番点亮+reg[25:0]count;//系统时钟频率过高,需要计数的方式来产生延时,使led保持状态一段时间reg[3:0]led;//led低电平点亮[2:0]flag;//ledalways@(posedgesys_clk)beginif(!rst_n)//复位,给存放器赋初值beginflag<=3”b0;count<=26”b0;end//else//sys_clk上升沿到来//beginif(count==26”d20)begincount<=26”d0;//count归零,便于下次重开头计数b10flag==2’b112’b00,而并非当flag==’b102’b00〕flag<=3”b000;else
flag<=flag+3”b001;endcount<=count+26”d1;//count没计数到指定值是,count执行加一操作endalways@(posedgesys_clk)if(sw1==1”b1)begincase(flag)//flag会不断变化,并且flag在从一个值变成另一个值的时候,会保持一段很长的时间,我们利用它来产生流水灯现象3”b000:led<=4”b0000;//点亮全部灯,都为低电平3”b001:led4”b1111;//没有点亮灯,都为高电平3”b010:led<=4”b0000;//点亮全部灯,都为低电平3”b011:led4”b1111;//没有点亮灯,都为高电平3”b100:led<=4”b0000;//点亮全部灯,都为低电平3”b101:led4”b1111;//没有点亮灯,都为高电平3”b110:led4”b0000;//点亮全部灯,都为低电平3”b111:led4”b1111;//没有点亮灯,都为高电平endcaseendelsebegincase(flag)//flag会不断变化,并且flag在从一个值变成另一个值的时候,会保持一段很长的时间,我们利用它来产生流水灯现象3”b000:led4”b0111;//3”b001:led<=4”b1011;点亮其次个灯低电平点亮//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++3”b010:led4”b1101;//3”b011:led4”b1110;//3”b100:led4”b1101;//3”b101:led4”b1011;//3”b110:led4”b0111;//3”b111:led<=4”b1111;endcaseendendmodule七:仿真结果:1:当swl=1时,时序仿真结果如以下图功能仿真结果为:2swl=0时,时序仿真结果为:功能仿真结果为:FPGA根底试验之正弦波形产生一、试验目的通过此试验进一步了解、生疏和把握QuartusII开发软件的使用方Verilog语言的编程方法。学习简洁时序电路的设计分析和硬件测试。二、试验内容生疏信号产生板中的FPGAI/O的连接;Verilog语言的编程产生相应时序;生疏集成开发工具QuartusII,学会使用QuartusIICyclone系列FPGA的程序开发、编译与调试;Cyclone系列FPGA.sof文件加载到试验板的FPGA中,实现正弦波形产生。三、试验原理DDS(DirectDigitalSynthesis)是一种应用直接数字合成技术来产DDS据查询表。在输出信号波形时,从数据表依次读出数据,产生数字信号。四、试验步骤1、通过matlab产生一组正弦信号:a=1:1:1023;b=127*cos((1/512)*pi*a)+128;b=round(b’);10241~255之间的数存入ROM之中。2、将产生的数据保存为sin.hex文件;IP核的产生。3、选中单口rom添加文件名。4、将q outputport勾选去掉。5、添加产生的sin.hex文件到rom中。6、依据需要安排管脚并进展编译。7、完成rom的设置,添加输入输出端口。8、验证结果:利用波形仿真看结果,建波形文件。9、双击Name下面的空白处,点击NewFolder。10、点击list。12、将输入及输出添加到仿真文件中。13、给相应的输入进展赋值;对时钟进展赋值。14、点击工具栏中的时钟标志。15a16进制显示。16、赋值完毕后,开头时序仿真。17、选择相应的仿真文件,开头仿真,完毕后查看report185的显示,得到相应的波形,a和b的值打算了显示波形的频率及相位。五、电路符号addaddclka[31..0]b[31..0]addq[31..0]INPUTVCCINPUTVCCINPUTVCCclk c[31..0]a[31..0]b[31..0]inst1rom2rom2addq[31..22]address[9..0]q[7..0]OUTPUTq[7..0]8ow21clkclockinstBlocktype:AUTO六、设计程序Rom1modulerom1(address,clock,q);input [9:0] address;input clock;output [7:0] q;wire[7:0]sub_wire0;wire[7:0]q=sub_wire0[7:0];altsyncram altsyncram_component(.clock0(clock),.address_a(address),.q_a(sub_wire0),.aclr0(1”b0),.aclr1(1”b0),.address_b(1”b1),.addressstall_a(1”b0),.addressstall_b(1”b0),.byteena_a(1”b1),.byteena_b(1”b1),.clock1(1”b1),.clocken0(1”b1),.clocken1(1”b1),.clocken2(1”b1),.clocken3(1”b1),.data_a({8{1”b1}}),.data_b(1”b1),.eccstatus,.q_b,.rden_a(1”b1),.rden_b(1”b1),.wren_a(1”b0),.wren_b(1”b0));defparamaltsyncram_component.address_aclr_a=“NONE“,`ifdefNO_PLIaltsyncram_component.init_file=“boxing.rif“`else`endif,
altsyncram_component.init_file=“boxing.hex“altsyncram_ended_device_family=“Cyclone“,altsyncram_component.lpm_hint=“ENABLE_RUNTIME_MOD=NO“,altsyncram_component.lpm_type=“altsyncram“,altsyncram_component.numwords_a=1024,altsyncram_component.operation_mode=“ROM“,altsyncram_component.outdata_aclr_a=“NONE“,altsyncram_component.outdata_reg_a=“UNREGISTERED“,altsyncram_component.widthad_a=10,altsyncram_component.width_a=8,altsyncram_component.width_byteena_a=1;endmodulemodulemy_add(clock,dataa,datab,result);input clock;input [31:0] dataa;input [31:0] datab;output [31:0] result;wire[31:0]sub_wire0;wire[31:0]result=sub_wire0[31:0];lpm_add_sublpm_add_sub_component(.dataa(dataa),.datab(datab),.clock(clock),.result(sub_wire0)//synopsystranslate_off,.aclr,.add_sub,.cin,.clken,.cout,.overflow//synopsystranslate_on);defparamlpm_add_sub_component.lpm_direction=“ADD“,lpm_add_sub_component.lpm_hint =“ONE_INPUT_IS_CONSTANT=NO,CIN_USED=NO“,lpm_add_sub_component.lpm_pipeline=1,lpm_add_sub_component.lpm_representation=“UNSIGNED“,lpm_add_sub_component.lpm_type=“LPM_ADD_SUB“,lpm_add_sub_component.lpm_width=32;endmodulemoduleadd(clk,a,b,c);inputclk;input[31:0]a;input[31:0]b;output[31:0]c;reg[31:0]c;reg[31:0]d;initialbegind<=b;endalways@(posedgeclk)beginc<=a+d;d<=c;endendmodulestranslate_off`timescale1ps/1ps//synopsystranslate_onmodulerom(address,clock,q);input [9:0] address;input clock;output [7:0] q;wire[7:0]sub_wire0;wire[7:0]q=sub_wire0[7:0];altsyncram altsyncram_component(.clock0(clock),.address_a(address),.q_a(sub_wire0),.aclr0(1”b0),.aclr1(1”b0),.address_b(1”b1),.addressstall_a(1”b0),.addressstall_b(1”b0),.byteena_a(1”b1),.byteena_b(1”b1),.clock1(1”b1),.clocken0(1”b1),.clocken1(1”b1),.clocken2(1”b1),.clocken3(1”b1),.data_a({8{1”b1}}),.data_b(1”b1),.eccstatus,.q_b,.rden_a(1”b1),.rden_b(1”b1),.wren_a(1”b0),.wren_b(1”b0));defparamaltsyncram_component.address_aclr_a=“NONE“,`ifdefNO_PLIaltsyncram_component.init_file=“boxing.rif“`else`endif,
altsyncram_component.init_file=“boxing.hex“altsyncram_ended_device_family=“Cyclone“,altsyncram_component.lpm_hint=“ENABLE_RUNTIME_MOD=NO“,altsyncram_component.lpm_type=“altsyncram“,altsyncram_component.numwords_a=1024,altsyncram_component.operation_mode=“ROM“,altsyncram_component.outdata_aclr_a=“NONE“,altsyncram_component.outdata_reg_a=“UNREGISTERED“,altsyncram_component.widthad_a=10,altsyncram_component.width_a=8,altsyncram_component.width_byteena_a=1;endmodule七、试验结果八、试验总结生器的设计,学习和把握了DA转换,更加娴熟地使用Verilog语言据的把握,运用quartusII仿真和调用modelsim仿真。生疏软件在编译过程中消灭的错误和排解这些错误。试验三开关把握灯连续闪耀一、试验目的QuartusIIVerilogDSP的使用方法。学习简洁时序电路的设计分析和硬件测试。二、试验内容生疏信号产生板中的FPGA的一般I/O的连接;依据实际程序分析,体会用Verilog语言的编程产生相应时序;QuartusIICycloneFPGA的程序开发、编译与调试;生疏DSP软件的操作环境,并学会连接DSP硬件进展调试实现相应功能。DSP程序,使得两局部同时工作,FPGA局部供给信号,使得实现灯连续闪耀的结果。三、试验要求〔DSP〕中主要实现外部的开关按钮S1的触发产生中断,DSP接HL4FPGA局部供给中断信号,DSP局部实现由开关把握的灯闪耀。FPGA局部程序,中断闪灯〔DSP〕文件夹DSP工作中所需要的相S1的触发产生中断,DSPHL4开头闪耀。利用FPGA产生相关信号DSP的工作时钟,DSPDSPDSP的0。利用DSP程序产生对应的指示灯的输入电平,初始程序中利用了DSP的flag8。五、试验步骤1:FPGA局部建立工程Verilog文件,编写相关程序verilog文件编译为可视化电路图文件将可视化电路图文件添加输入输出组合成电路图文件编译语法及验证原理图依据需要安排管脚并进展编译管脚FPGA上的安排FPGA上的连接管脚说明clk_inresetPIN_1640M240M复位信号,直接拉高clk_outPIN_320MDSP20Mclk_in分频得到d1PIN_126FLAG8连接到灯HL5,使其处于熄灭状态dout1PIN_130DSPRESETADSP-21065L复位信号sw3PIN_4KEYRESET连接到开关S1,用于发出中断脉冲Irt0PIN_10IRQ0DSP0DSPled[0]PIN_127FLAG9连接到灯HL4,使其处于熄灭状态led[1]PIN_128FLAG10连接到灯HL3,使其处于熄灭状态led[2]PIN_129FLAG11连接到灯HL2,使其处于熄灭状态.so〔在线方式.po〔离线方式线方式。中断产生2:DSP局部预备工作:1切入烧写环境2选择芯片型号连接烧写器的状况下选择Emulator,否则可以选择PCIHPPCI,使用USBHPUSB建立工程选择芯片型号sourcefile中ldf文件按挨次直接到完毕开头编译,先单步运行几步,然后再点击run,由于在DSP惯状况下,我们在起始几步承受单步运行。主要参见程序说明局部:因d1连接到FLAG8上,故在DSP程序中只能把握HL5。利用开关S1把握灯HL5的闪灭,闪灭次数在DSP程序内部设定。六、试验设计FPGA所需信号1:moduletry001(reset,clk_in,clk_out,d1,dout1);inputclk_in,reset;outputclk_out,d1,dout1;reg[2:0]led;regclk_out;regd1;reg[12:0]cnt;reg[9:0] regdout1;regclkout8k;initialbegind1=1”bz;cnt=0;cnt1=0;dout1=0;endalways@(posedgeclk_in)beginif(!reset) clk_out=0;else clk_out=~clk_out;endalways@(posedgeclk_in)begincnt=cnt+1;if(cnt<=3999)beginclkout8k=0;endelsebeginclkout8k=1;endif(cnt==7999)begincnt=0;endendalways@(posedgeclkout8k)beginif(cnt1<=1000)cnt1=cnt1+1;elsecnt1=cnt1;if(cnt1<900)begindout1=0;endelsebegindout1=1;endendendmodule2:modulekaiguan(led,sw3,irt0);inputsw3;outputled,irt0;reg[2:0]led;reg irt0;initialbeginirt0=1”b1;endalways@(sw3)begincase(sw3)1”b0:beginled=3”b111;irt0=1”b0;end1”b1:beginled=3”b111;irt0=1”b1;enddefault:led=1”bx;endcaseendendmodule对应电路符号为:1DSP工作条件2通过把握拨码开关来把握相关灯闪灭DSP局部程序#defineADDR10x20230.section/PM seg_rth; //中断向量表NOP;NOP;NOP;NOP; lib_rst1: nop;JUMP main;//初始复位中断,当系统硬件复位时跳到该中断指定的位置。
NOP;NOP;NOP;NOP;NOP;NOP; lib_SOVFI: RTI;RTI;RTI;RTI; lib_TMZHI: RTI;RTI;RTI;RTI; lib_VIRPTI: RTI;RTI;RTI;RTI; lib_IRQ2I: RTI;RTI;RTI;RTI; lib_IRQ1I: 信号,表示接收到数据,该中断地有效。NOP;NOP;NOP;NOP; lib_IRQ0I: NOP;JUMPshandeng;NOP;NOP; //IRQ0被触发后,进入此中断跳转到闪灯程序 lib_SPR0I: 进中断 lib_SPR1I: 中断。 lib_SPT0I: RTI;RTI;RTI;RTI; lib_SPT1I: RTI;RTI;RTI;RTI;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP; lib_EP0I: RTI;RTI;RTI;RTI; lib_EP1I: RTI;RTI;RTI;RTI;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP; lib_CB7I: RTI;RTI;RTI;RTI; lib_CB5I: RTI;RTI;RTI;RTI; lib_TMZLI: RTI;RTI;RTI;RTI;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;.SECTION/PMseg_pmco; //主程序.globalmain;main:中断初始化/////////////////////////////////////////nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;BITSETMODE1IRPTEN; //全局中断使能// BITCLRMODE2IRQ0E; //0BITSETMODE2IRQ0E; nop;nop;nop;nop;//BITCLRMODE2IRQ1E; //电平触发中断1BITSETIMASKIRQ0I; //BITSETIMASKIRQ1I; //1kkk:
nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;jumpkkk(db);idle;main.END:shandeng:ustat1=dm(IOCTL); bitSETustat1FLG8;dm(IOCTL)=ustat1;lcntr=20,doLEDuntillce; //中断后的闪灯次数ustat1=dm(IOSTAT); //FLAG8置零bitclrustat1FLG8;dm(IOSTAT)=ustat1;lcntr=65535,dowait1untillce; nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夏季健康讲座课件
- 胃脘痛的中医护理常规
- 石家庄市重点中学2024-2025学年高二物理第二学期期末学业质量监测模拟试题含解析
- 上海市青浦高中2024-2025学年高二下数学期末综合测试模拟试题含解析
- 上海工艺美术职业学院《政府公共关系》2023-2024学年第二学期期末试卷
- 重庆工程职业技术学院《单片机》2023-2024学年第二学期期末试卷
- 陕西铁路工程职业技术学院《小学科学教学法》2023-2024学年第二学期期末试卷
- 台州职业技术学院《计算机辅助工业设计》2023-2024学年第二学期期末试卷
- 沈阳城市建设学院《模拟电路基础》2023-2024学年第二学期期末试卷
- 夏天领域的白板课件
- 2025年中考道法答题技巧与模板构建专题08主观题答题技巧(观点概括类试)(学生版+解析)
- 风力发电场调试规程
- 2024-2025学年广东省深圳市高一数学下学期7月期末考试(附答案)
- “教-学-评”一体化下初中英语写作教学评价措施
- 2025团员考试试题及答案
- 2025年软件测试工程师考试题及答案
- 血管内导管相关性血流感染预防与诊治指南(2025)解读课件
- 2025年高考数学考前最后一课
- 茶叶加工考试题及答案
- 2025 中小学征订教辅谋利问题整治工作自查报告
- 江苏省南通市海门市海门中学2025届高考物理四模试卷含解析
评论
0/150
提交评论