![EDA技术与VerilogHDL实验报告_第1页](http://file4.renrendoc.com/view/0b967925da0a6f9407921c40e52a9180/0b967925da0a6f9407921c40e52a91801.gif)
![EDA技术与VerilogHDL实验报告_第2页](http://file4.renrendoc.com/view/0b967925da0a6f9407921c40e52a9180/0b967925da0a6f9407921c40e52a91802.gif)
![EDA技术与VerilogHDL实验报告_第3页](http://file4.renrendoc.com/view/0b967925da0a6f9407921c40e52a9180/0b967925da0a6f9407921c40e52a91803.gif)
![EDA技术与VerilogHDL实验报告_第4页](http://file4.renrendoc.com/view/0b967925da0a6f9407921c40e52a9180/0b967925da0a6f9407921c40e52a91804.gif)
![EDA技术与VerilogHDL实验报告_第5页](http://file4.renrendoc.com/view/0b967925da0a6f9407921c40e52a9180/0b967925da0a6f9407921c40e52a91805.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA技术与VerilogHDL实验报告实验一EDA实验箱使用一.实验目的1.GW48教学实验系统原理与使用介绍2.熟悉QuartusII两种输入方式下编译、仿真简单的组合电路。二.实验内容首先了解GW48系统使用注意事项以及GW48系统主板结构与使用方法,接着对各实验电路结构图特点与适用范围简述。最后在QuartusII界面下,用文本输入和图形输入分别验证七选一多路选择器的功能。三.程序清单文本输入如下所示:modulemux71(a,b,c,d,e,f,g,s,y);inputa,b,c,d,e,f,g;outputy;input[2:0]s;regy;always@(a,b,c,d,e,f,g,s)case(s)0:y<=a;1:y<=b;2:y<=c;3:y<=d;4:y<=e;5:y<=f;6:y<=g;default:y<=a;endcaseendmodule图形输入如下所示:实验步骤1、新建一个名称为MUX71a的工程,并在该文件夹中新建一个MUX71a.v的文件。2、编译代码,编译成功后进行第三步,若不成功则查改代码中的错误。3、在工程文件夹中新建一个MUX71a.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。验证输出端口波形是否达到七选一多路选择器的功能。五、实验数据仿真波形如下图所示。六、实验小结通过对EDA实验箱使用,了解了GW48教学实验系统原理与使用介绍;熟悉QuartusII两种输入方式下编译、仿真简单的组合电路。实验二用原理图和VerilogHDL语言设计一位全加器一.实验目的熟悉在QuartusII下用原理图和VerilogHDL语言设计一位全加器。二.实验内容在QuartusII下用原理图和VerilogHDL语言设计一位全加器,并编译、仿真验证其功能。三.程序清单全加器顶层文件设计:半加器描述:四.实验步骤1、新建一个名称为f_adder的工程,并在该文件夹中新建一个f_adder.bdf的文件。2、新建一个名称为h_adder.v的文件。3、编译工程,编译成功后进行下一步,若不成功则查改错误。在工程文件夹中新建一个f_adder.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。验证输出端口波形是否实现一位全加器的功能。五、实验数据I、全加器仿真波形如下图所示:II、半加器仿真波形如下图所示:六、实验小结通过此次实验熟悉在QuartusII下用原理图和VerilogHDL语言设计一位全加器。实验三含异步清0和同步时钟使能的4位加法计数器一.实验目的熟悉在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器。二.实验内容在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器,并编译、仿真验证其功能。三.程序清单计数器顶层文件设计:10进制计数器文本输入:moduleCNT10(clk,rst,en,load,cout,dout,data);inputclk,en,rst,load;input[3:0]data;output[3:0]dout;outputcout;reg[3:0]q1;regcout;assigndout=q1;always@(posedgeclkornegedgerst)beginif(!rst)q1<=0;elseif(en)beginif(!load)q1<=data;elseif(q1<9)q1<=q1+1;elseq1<=4'b0000;endendalways@(q1)if(q1==4'h9)cout=1'b1;elsecout=1'b0;endmodule60位计数器文本输入:moduleCNT60(CLK,EN,RST,LOAD,COUT1,COUT2,DOUT1,DOUT2,DATA);inputCLK,EN,RST,LOAD;input[3:0]DATA;output[3:0]DOUT1;output[2:0]DOUT2;outputCOUT1;outputCOUT2;reg[3:0]Q1;reg[2:0]Q2;regCOUT1;regCOUT2;assignDOUT1=Q1;assignDOUT2=Q2;always@(negedgeCLKornegedgeRST)beginif(!RST)Q1<=0;elseif(EN)beginif(!LOAD)Q1<=DATA;elseif(Q1<9)Q1<=Q1+1;elseQ1<=4'b0000;endendalways@(Q1)if(Q1==4'h9)COUT1=1'b1;elseCOUT1=1'b0;always@(negedgeCOUT1ornegedgeRST)beginif(!RST)Q2<=0;elseif(EN)beginif(!LOAD)Q2<=DATA;elseif(Q2<5)Q2<=Q2+1;elseQ2<=4'b0000;endendalways@(Q2)if((Q1==4'h9)&&(Q2==3'h5))COUT2=1'b1;elseCOUT2=1'b0;endmodule60位计数器图形输入:四.实验步骤1、新建一个名称为CNT10的工程,并在该文件夹中新建一个CNT10.v的文件。2、编译工程,编译成功后进行下一步,若不成功则查改错误。3、在工程文件夹中新建一个CNT10.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。4、验证输出端口波形是否实现异步清0和同步时钟使能的4位加法计数器的功能。五、实验数据10位计数器文本输入仿真波形:60位计数器文本输入仿真波形:60位计数器图形输入仿真波形:六、实验小结通过此次实验熟悉在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器实验四8位十进制频率计设计一.实验目的熟悉在QuartusII下设计2位和8位十进制频率计。二.实验内容在QuartusII下设计2位和8位十进制频率计,并编译、仿真验证其功能。三.程序清单频率计顶层文件设计:(1)2位十进制频率计Conter8.bdf图形输入:tf_ctro.bdf图形输入:ft_top.bdf图形输入:conter100.v文本输入:moduleconter100(CLK,CLR,EN,cout,ge,shi);inputCLK,EN,CLR;output[3:0]ge;output[3:0]shi;outputcout;regcout;reg[3:0]ge;reg[3:0]shi;always@(posedgeCLK)if(!CLR)beginge<=0;shi<=0;cout<=0;endelseif((ge==9)&&(shi==9))beginge<=0;shi<=0;cout<=1;endelseif(ge==9)beginge<=0;shi<=shi+1;cout<=0;endelsebeginge<=ge+1;shi<=shi;cout<=0;endendmoduletf_ctro.v文本输入:moduletf_ctro(clk,en,clr,lock);inputclk;outputen,clr,lock;regen,clr,lock;integerd=0;always@(posedgeclk)begind<=d+1;if(d==1)beginen<=0;lock<=0;clr<=0;endelseif(d==2)beginlock<=1;en<=0;clr<=0;endelseif(d==3)beginlock<=0;clr<=0;en<=0;endelseif(d==6)beginlock<=0;clr<=1;en<=0;endelseif(d==7)beginlock<=0;clr<=0;en<=0;endelseif(d==8)beginlock<=0;clr<=0;en<=1;endelseif(d==16)begind<=0;en<=0;lock<=0;clr<=0;endendendmodule74374锁存器文本输入:moduleoctal(clk,en,d_in,q_in);inputclk,en;input[3:0]d_in;output[3:0]q_in;reg[3:0] Q;assignq_in=Q;always@(posedgeclk)if(!en)beginQ<=d_in;endendmodule(2)8位十进制频率计ft_top.bdf图形输入:四.实验步骤1、新建一个名称为CTR10的工程,并在该文件夹中新建一个CTR10.bdf的文件,在工程文件夹中新建一个counter8.bdf的文件。2、编译工程,编译成功后进行下一步,若不成功则查改错误。3、在工程文件夹中新建一个CTR10.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。4、验证输出端口波形是否实现8位十进制频率计的功能。五、实验数据仿真波形如下图所示:(1)2位十进制频率计Conter8.bdf图形输入仿真波形:Conter100.v文本输入仿真波形:Tf_ctro.bdf图形输入仿真波形输入:ft_top.bdf图形输入仿真波形:(2)8位十进制频率计ft_top.bdf图形输入仿真波形六、实验小结通过本次实验熟悉在QuartusII下设计2位和8位十进制频率计,并编译、仿真验证其功能。实验五用状态机实现对ADC0809采样控制一.实验目的熟悉在QuartusII下用状态机实现对ADC0809采样控制。二.实验内容在QuartusII下用状态机实现对ADC0809采样控制,并编译、仿真验证其功能。三.实验原理四、实验程序清单moduleADC0809(D,CLK,EOC,RST,ALE,START,OE,ADDA,Q,LOCK_T);input[7:0]D;inputCLK,RST;inputEOC;outputALE;outputSTART,OE;outputADDA,LOCK_T;output[7:0]Q;regALE,START,OE;parameters0=0,s1=1,s2=2,s3=3,s4=4;reg[4:0]cs,next_state;reg[7:0]REGL;regLOCK;always@(csorEOC)begincase(cs)s0:next_state<=s1;s1:next_state<=s2;s2:if(EOC==1'b1)next_state<=s3;elsenext_state<=s2;s3:next_state<=s4;s4:next_state<=s0;default:next_state<=s0;endcaseendalways@(cs)begincase(cs)s0:beginALE=0;START=0;OE=0;LOCK=0;ends1:beginALE=1;START=1;OE=0;LOCK=0;ends2:beginALE=0;START=0;OE=0;LOCK=0;ends3:beginALE=0;START=0;OE=1;LOCK=0;ends4:beginALE=0;START=0;OE=1;LOCK=1;enddefault:beginALE=0;START=0;OE=0;LOCK=0;endendcaseendalways@(posedgeCLKorposedgeRST)beginif(RST)cs<=s0;elsecs<=next_state;endalways@(posedgeLOCK)if(LOCK)REGL<=D;assignADDA=0;assignQ=REGL;assignLOCK_T=LOCK;endmodule五.实验步骤1.新建一个名称为ADC0809的工程,并在该文件夹中新建一个ADC0809.v的文件。2.编译工程,编译成功后进行下一步,若不成功则查改错误。3.在工程文件夹中新建一个ADC0809.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。验证输出端口波形是否实现用状态机实现对ADC0809采样控制仿真波形如下图所示:状态转换图:六、实验小结通过此次实验熟悉在QuartusII下用状态机实现对ADC0809采样控制,并编译、仿真验证其功能。实验六交通灯设计实验一.实验目的熟悉在QuartusII下设计十字路口交通灯控制电路。二.实验内容在QuartusII下设计十字路口交通灯控制电路,并编译、仿真验证其功能。三.实验原理状态表:四、实验程序清单moduletraffic(clk,enb,accounth,account1,bccounth,bccount1,lampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4);inputclk,enb;output[3:0]accounth,account1,bccounth,bccount1;outputlampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4;regtempa,tempb;reg[2:0]counta,countb;reg[7:0]numa,numb;reg[7:0]ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;reglampa1,lampa2,lampa3,lampa4,lampb1,lampb2,lampb3,lampb4;assign{accounth,account1}=numa;assign{bccounth,bccount1}=numb;always@(enb)if(!enb)beginared<=8'b01010101;ayellow<=8'b00000101;agreen<=8'b01000000;aleft<=8'b00010101;bred<=8'b01100101;byellow<=8'b00000101;bleft<=8'b00010101;bgreen<=8'b00110000;endalways@(posedgeclk)beginif(enb)beginif(tempa)beginif(numa>0)if(numa[3:0]==0)beginnuma[3:0]<=9;numa[7:4]<=numa[7:4]-1;endelsenuma[3:0]<=numa[3:0]-1;if(numa==0)tempa<=0;endelsebegintempa<=1;case(counta)0:beginnuma<=agreen;{lampa1,lampa2,lampa3,lampa4}<=2;counta<=1;end1:beginnuma<=ayellow;{lampa1,lampa2,lampa3,lampa4}<=4;counta<=2;end2:beginnuma<=aleft;{lampa1,lampa2,lampa3,lampa4}<=1;counta<=3;end3:beginnuma<=ayellow;{lampa1,lampa2,lampa3,lampa4}<=4;counta<=4;end4:beginnuma<=ared;{lampa1,lampa2,lampa3,lampa4}<=8;counta<=0;enddefault:{lampa1,lampa2,lampa3,lampa4}<=8;endcaseendendelsebegin{lampa1,lampa2,lampa3,lampa4}<=4'b1000;counta<=0;tempa<=0;endendalways@(posedgeclk)beginif(enb)beginif(tempb)beginif(numb>0)if(numb[3:0]==0)beginnumb[3:0]<=9;numb[7:4]<=numb[7:4]-1;endelsenumb[3:0]<=numb[3:0]-1;if(numb==0)tempb<=0;endelsebegintempb<=1;case(countb)0:beginnumb<=bred;{lampb1,lampb2,lampb3,lampb4}<=8;countb<=1;end1:beginnumb<=bgreen;{lampb1,lampb2,lampb3,lampb4}<=2;countb<=2;end2:beginnumb<=byellow;{lampb1,lampb2,lampb3,lampb4}<=4;countb<=3;end3:beginnumb<=bleft;{lampb1,lampb2,lampb3,lampb4}<=1;countb<=4;end4:beginnumb<=byellow;{lampb1,lampb2,lampb3,lampb4}<=4;countb<=0;enddefault:{lampb1,lampb2,lampb3,lampb4}<=8;endcaseendendelsebegin{lampb1,lampb2,lampb3,lampb4}<=4'b1000;countb<=0;tempb<=0;endendendmodule状态图:五、.实验步骤1.新建一个名称为traffic的工程,并在该文件夹中新建一个traffic.v的文件。2.编译工程,编译成功后进行下一步,若不成功则查改错误。3、在工程文件夹中新建一个traffic.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。验证输出端口波形是否实现用状态机实现对十字路口交通灯控制。仿真波形如下图所示。引脚分配图:六、实验小结通过此次实验熟悉在QuartusII下设计十字路口交通灯控制路,并编译、仿真验证其功能。实验七简易数字时钟系统实验--------考试实验一.实验目的熟悉在QuartusII下设计简易数字时钟系统。二.实验内容在QuartusII下设计简易数字时钟系统,并编译、仿真验证其功能。三、实验要求(1)能正常计时(2)有暂停键,清零键(3)小时、分钟、秒钟可调(可加减)(4)整点报时四、程序清单moduleshizhong(CLK,CLR,HOUR,MIN,SEC,EN,HOUT,SW,MODE,up);inputCLK,EN,CLR,SW,up;outputHOUT,HOUR,MIN,SEC;output[3:0]MODE;reg[7:0]HOUR,MIN,SEC;regHOUT,CLK1;reg[3:0]MODE;//CLK为时钟,EN为使能,也就是暂停按钮,SW为调整MODE的按钮//UP为调整时钟的加按钮也是减按钮,当MODE为1到6为加按钮,当MODE为7到12为减按钮//HOUT为报警器的控制always@(CLKorup)//UP是时分秒加减按钮,在MODE1到6为加,7到12为减 begin if(MODE==0)CLK1<=CLK;//**MODE0为时钟自动走,其他MODE为暂停调整时钟 elseCLK1<=up; endalways@(posedgeSW) //********调整模式,范围为模式1到模式12begin if(SW) begin MODE<=MODE+1; if(MODE>12)MODE<=0; endend //********always@(posedgeCLK1orposedgeCLR) begin if(CLR) //*****清除时间,使其为00:00:00 begin SEC<=0;HOUR<=0;MIN<=0; end //***清除时间,使其为00:00:00 //下面为:时钟自动运行代码else begin if(!EN) if(MODE==0) begin if((SEC[3:0]==9)&&(SEC[7:4]==5)&&(MIN[3:0]==9)&&(MIN[7:4]==5)&&(HOUR[3:0]==3))//**当分为59,秒为59且时为的个位为3时,将进行下一部判断 begin if(HOUR[7:4]==2)//**当分为59,秒为59且时为23时,下一秒清零,且报警 begin HOUR[7:4]<=0; HOUR[3:0]<=0; MIN[7:4]<=0; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; HOUT<=1; end //**当分为59,秒为59且时为23时,下一秒清零,且报警 else //***当分为59,秒为59且小时不为23时,小时将加1,且报警 begin HOUR[3:0]<=HOUR[3:0]+1;HOUT<=1; MIN[7:4]<=0; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; end //***当分为59,秒为59且小时不为23时,小时将加1,且报警 end elseif((SEC[3:0]==9)&&(SEC[7:4]==5)&&(MIN[3:0]==9)&&(MIN[7:4]==5)&&(HOUR[3:0]==9)) begin //***小时的十位进位是在:小时的个位为9,分钟为59,秒为59 if(HOUR[7:4]<=1) begin HOUR[7:4]<=HOUR[7:4]+1; HOUR[3:0]<=0; MIN[7:4]<=0; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; HOUT<=0; end //***小时的十位进位是在:小时的个位为9,分钟为59,秒为59 end elseif((SEC[3:0]==9)&&(SEC[7:4]==5)&&(MIN[3:0]==9)&&(MIN[7:4]==5)) begin //***小时的个位进位是在:分钟为59,秒为59 HOUR[3:0]<=HOUR[3:0]+1; MIN[7:4]<=0; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; HOUT<=1; end //***小时的个位进位是在:分钟为59,秒为59 elseif((SEC[3:0]==9)&&(SEC[7:4]==5)&&(MIN[3:0]==9)) begin //**分的十位进位是在:分钟的个位为9,秒为59 MIN[7:4]<=MIN[7:4]+1; MIN[3:0]<=0; SEC[3:0]<=0; SEC[7:4]<=0; end //**分的十位进位是在:分钟的个位为9,秒为59 elseif((SEC[3:0]==9)&&(SEC[7:4]==5)) begin //**分的个位进位是在:秒为59 MIN[3:0]<=MIN[3:0]+1; SEC[3:0]<=0; SEC[7:4]<=0; end //**分的个位进位是在:秒为59 elseif(SEC[3:0]==9) begin //**秒的十位进位是在:秒为59 SEC[7:4]<=SEC[7:4]+1; SEC[3:0]<=0; end //**秒的十位进位是在:秒为59 else begin //**秒的个位自动加1,不报警,报警其他地方已经设置 SEC[3:0]<=SEC[3:0]+1;HOUT<=0; end//**秒的个位自动加1,不报警,报警其他地方已经设置 end //**上面为:时钟自动运行代码 elseif(MODE==1)begin //**MODE1到6都是用UP来控制:时,分,秒的加if(SEC[3:0]>=9)//SEC[3:0]<=0;elseSEC[3:0]<=SEC[3:0]+1;endelseif(MODE==2)beginif(SEC[7:4]>=5)SEC[7:4]<=0;elseSEC[7:4]<=SEC[7:4]+1;endelseif(MODE==3)beginif(MIN[3:0]>=9)MIN[3:0]<=0;elseMIN[3:0]<=MIN[3:0]+1;endelseif(MODE==4)beginif(MIN[7:4]>=5)MIN[7:4]<=0;elseMIN[7:4]<=MIN[7:4]+1;endelseif(MODE==5)beginif(HOUR[7:4]==2&&HOUR[3:0]>=3)HOUR[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 未来十年移动支付的科技发展趋势预测
- 标准化管理在生产现场的挑战与对策
- 现代音乐文化的全球化传播路径
- 13人物描写一组(说课稿)2023-2024学年统编版语文五年级下册
- Unit 1 Playtime Lesson 3(说课稿)-2023-2024学年人教新起点版英语二年级下册001
- 25 少年闰土 第二课时 说课稿-2024-2025学年语文六年级上册 统编版
- Unit1 London is a big city(说课稿)2023-2024学年外研版(三起)四年级下册
- 2024-2025学年高中生物 第七章 现代生物进化理论 第1节 现代生物进化理论的由来说课稿3 新人教版必修2
- Unit 2 Being a good language learner Exploring and Using 说课稿-2024-2025学年高中英语重大版(2019)必修第一册
- 2025挖掘机劳动合同范文
- 北师大版五年级上册四则混合运算100道及答案
- 专项债券在燃气基础设施建设中的融资作用
- 人教部编版道德与法治八年级下册:6.3 《国家行政机关》说课稿1
- GE-LM2500+G4航改燃气轮机在舰船和工业上的应用
- 2024山东能源集团中级人才库选拔(高频重点提升专题训练)共500题附带答案详解
- 钢铁是怎样炼成的读后感作文700字
- 武汉市江夏区2022-2023学年七年级上学期期末数学试卷【带答案】-109
- 学校物业服务合同范本专业版
- SL 288-2014 水利工程施工监理规范
- 部编版八年级语文上册期末考试卷
- 2024年02月中央军委后勤保障部2024年公开招考专业技能岗位文职人员笔试参考题库附带答案详解
评论
0/150
提交评论