已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安交通大学数字电子技术实验报告姓名:高加西班级:电气学号:ise基础实验一、 设计要求1) 通过使用ise软件和fpga实现带有置位和清零端的边沿d触发器的逻辑图。2) 练习verilog语法编写,掌握用hdl实现基本逻辑功能。二、 hdl综合实验任务边沿d触发器的设计1. 实验方法和步骤(1) 建立工程文件,输入hdl程序如下:module d_flip_flop( input clk, input set, input d, input clr, output reg q/注意:always模块中的输出必须是寄存器型变量 );always (posedge clk or posedge clr or posedge set)beginif(clr) q=0;else if(set) q=1;else q=d; endendmodule(2) 编写约束文件:net clk loc =b8; /时钟net d loc =n3; /sw7net set loc =l3; /sw1net clr loc =p11; /sw0net q loc =g1; /ld7(3) 综合、实现及生成编程文件;仿真,设计下载:仿真测试文件如下:module test_d_flip_flop;/ inputsreg clk;reg set;reg d;reg clr;/ outputswire q;/ instantiate the unit under test (uut)d_flip_flop uut (.clk(clk), .set(set), .d(d), .clr(clr), .q(q);initial begin/ initialize inputsclk=0;set=1;d=0; clr=0;/ wait 100 ns for global reset to finish#100;/ add stimulus hereendalways#10clk=clk;always#12d=d;always#33clk=clk;always#42set=set;endmodule仿真结果:三、分析与讨论由仿真结果可以看出该电路完成了想要实现的逻辑功能(即边沿d触发器),通过这次实验我大体了解了ise软件和verilog程序语言.组合逻辑电路实验一、 实验目的及其设计要求1)学习使用ise软件生成一个新工程文件2)学习使用hdl进行电路设计3)学会编辑顶层文件和用户约束文件4)熟悉仿真及综合及实现还有fpga配置等5) 熟悉在basys2开发板上的简单外围设备的控制6)使用hdl设计一个新的逻辑功能并验证,本实验设计的逻辑功能函数表达式为:。7) 设计一个4选1多路选择器,并在开发板上验证。8) 完成4位数码管动态显示设计,实现将8个sw输入的两位十六进制对应的8421bcd码,显示在数码管上。二、 组合逻辑电路实验任务任务1:逻辑功能函数表达式设计实验方法和步骤(1) 建立工程文件,输入hdl程序如下:(2) module gate2(3) input a,(4) input b,(5) input c,(6) input d,(7) output z(8) );(9) assign z=(a&b)|(c&d);(10) endmodule(11) 编写约束文件:net a loc=p11;net b loc=l3;net c loc=k3;net d loc=b4;net z loc=m5;(12) 综合、实现及生成编程文件;仿真,设计下载:仿真测试文件如下:module gates2test;/ inputsreg a;reg b;reg c;reg d;/ outputswire y;/ instantiate the unit under test (uut)gates4uut (.a(a), .b(b), .c(c), .d(d), .y(y);initial begin/ initialize inputsa = 0;b = 0;c = 0;d = 0;/ wait 100 ns for global reset to finish#100;/ add stimulus here#100;a=0;b=0;c=0;d=1;#200;a=0;b=0;c=1;d=0;#200;a=0;b=0;c=1;d=1;#200;a=0;b=1;c=0;d=0;#200;a=0;b=1;c=0;d=1;#200;a=0;b=1;c=1;d=0;#200;a=0;b=1;c=1;d=1;#200;a=1;b=0;c=0;d=0;#200;a=1;b=0;c=0;d=1;#200;a=1;b=0;c=1;d=0;#200;a=1;b=0;c=1;d=1;#200;a=1;b=1;c=0;d=0;#200;a=1;b=1;c=0;d=1;#200;a=1;b=1;c=1;d=0;#200;a=1;b=1;c=1;d=1;#200;endendmodule仿真结果:任务2:4选1多路选择器的设计与验证实验方法和步骤(1)建立工程文件, 输入hdl程序如下:module mux( input wire a, input wire b, input wire c, input wire d, input wire s1, input wire s2, output wire y ); assign y=(a&(s1)&(s2)|(b&(s1)&(s2)|(c&(s1)&(s2)|(d&(s1)&(s2); (2) 编写约束文件:nets1loc=p11;nets2loc=l3;netaloc=k3;netbloc=b4;netcloc=g3;netdloc=f3;netyloc=m5;(3)综合、实现及生成编程文件;仿真,设计下载:仿真测试文件如下:#100a=1;b=0;c=0;d=0;s1=0;s2=0;#400a=0;b=1;c=0;d=0;s1=0;s2=1;#400a=0;b=0;c=1;d=0;s1=1;s2=0;#400a=0;b=0;c=0;d=1;s1=1;s2=1;end仿真结果:任务3:4位数码管动态显示设计实验方法和步骤建立工程文件,输入hdl程序如下:module x7seg(input wire7:0x,input wire clk,input wire clr,output reg6:0a_to_g,output reg3:0an );wire 1:0s;reg 3:0digit;reg19:0clkdiv;assign s=clkdiv19:18;always(*)case(s)0:digit=x7:4;1:digit=x3:0;2:digit=0;3:digit=0;default:digit=x7:4;endcasealways(*)case(digit)0:a_to_g=7b0000001;1:a_to_g=7b1001111;2:a_to_g=7b0010010;3:a_to_g=7b0000110;4:a_to_g=7b1001100;5:a_to_g=7b0100100;6:a_to_g=7b0100000;7:a_to_g=7b0001111;8:a_to_g=7b0000000;9:a_to_g=7b0000100;ha:a_to_g=7b0001000;hb:a_to_g=7b1100000;hc:a_to_g=7b0110001;hd:a_to_g=7b1000010;he:a_to_g=7b0110000;hf:a_to_g=7b0111000;default:a_to_g=7b0000001;endcasealways(*)beginan=4b1111;ans=0;endalways(posedge clk or posedge clr)beginif(clr=1)clkdiv=0;elseclkdiv=clkdiv+1;endendmodule (2) 编写约束文件:neta_to_g0loc=m12;neta_to_g1loc=l13;neta_to_g2loc=p12;neta_to_g3loc=n11;neta_to_g4loc=n14;neta_to_g5loc=h12;neta_to_g6loc=l14;netan3loc=k14;netan2loc=m13;netan1loc=j12;netan0loc=f12;netclkloc=b8;netclrloc=g12;netx0loc=p11;netx1loc=l3;netx2loc=k3;netx3loc=b4;netx4loc=g3;netx5loc=f3;netx6loc=e2;netx7loc=n3;(3)综合、实现及生成编程文件,设计下载。三、讨论与分析由任务一仿真结果可以看出该设计完成了想要实现的逻辑功能(即),仿真图中a=1、b=1、c=0、d=1时, y=1,与理论结果相同;由任务二仿真结果可以看出该设计完成了想要实现的逻辑功能(即4选1多路选择器),与理论结果相同。将任务三的程序下载到basys2板子上后,通过改变选择八个开关的0-1状态,我们发现每两个数码管将分别显示一位16进制数(按10进制显示),实现了4位数码管动态显示的功能。通过这次实验我对组合逻辑电路有了进一步的认识,并对语言有了初步的了解,为下一步实验打好了基础。 时序逻辑电路实验一、 设计要求1) 设计一个秒脉冲发生器,用led指示秒脉冲的发放。(检查秒脉冲发生器的精度,能将1秒的脉冲周期改为2秒或3秒等)。2) 试设计一个带有异步清零和同步置数信号的4位寄存器,并在开发板上验证。实验前编写好hdl源文件、用户约束文件和仿真文件,并给出仿真波形。二、 时序逻辑电路实验任务任务1:秒脉冲发生器的设计实验方法和步骤(1) 建立工程文件,输入hdl程序如下:module miaomaichong(input clk,clr,output reg6:0 a_to_g,output wire3:0 an,output reg3:0q);assign an=4b1110; reg 26:0 counter;always (posedge clk)if(counter=25000000) counter = 0; else counter = counter+1;reg clk_div; always (posedge clk)if(counter=25000000) clk_div = clk_div; always(posedge clk_div or posedge clr)beginif(clr=1)q=0;else if(q=9)q=0;else q=q+1;endalways(*)case(q)0:a_to_g=7b0000001;1:a_to_g=7b1001111;2:a_to_g=7b0010010; 3:a_to_g=7b0000110;4:a_to_g=7b1001100;5:a_to_g=7b0100100;6:a_to_g=7b0100000;7:a_to_g=7b0001111;8:a_to_g=7b0000000;9:a_to_g=7b0000100;default:a_to_g=7b0000001;endcaseendmodule(2) 编写约束文件:neta_to_g0loc=m12;neta_to_g1loc=l13;neta_to_g2loc=p12;neta_to_g3loc=n11;neta_to_g4loc=n14;neta_to_g5loc=h12;neta_to_g6loc=l14;netan0loc=f12;netan1loc=j12;netan2loc=m13;netan3loc=k14;netclkloc=b8;netclrloc=p11;netq3loc=g1; /led7netq2loc=p4; /led6netq1loc=n4; /led5netq0loc=n5; /led4(3) 综合、实现及生成编程文件,设计下载。任务2:带有异步清零和同步置数信号的4位寄存器设计实验方法和步骤(1)建立工程文件,输入hdl程序如下:module register(input load,inputclk,inputclr,input wire3:0d,outputreg3:0q );/定义足够大的计数器,使时钟脉冲的周期可分辨reg 27:0q1;always(posedgeclk or posedgeclr)beginif(clr=1)q1=0;elseq1=q1+1;endassignmclk=q127;/实现异步清零,同步置数功能always(posedgemclk or posedgeclr)if(clr=1)q=0;else if(load=1)q=d;endmodule(2) 编写约束文件:projectnew source选implantation constraints file输入文件名:register点击next按钮点击finish按钮输入ucf文件如下:netclkloc=b8;netclrloc=p11;netloadloc=l3;netd0loc=k3;netd1loc=b4;netd2loc=g3;netd3loc=f3;netq0loc=m5;netq1loc=m11;netq2loc=p7;netq3loc=p6;(3) 综合、实现及生成编程文件;仿真,设计下载:仿真测试文件如下:moduleregistertest;/ inputsreg load;regclk;regclr;reg 3:0 d;/ outputswire 3:0 q;/ instantiate the unit under test (uut)registeruut (.load(load), .clk(clk), .clr(clr), .d(d), .q(q);initial begin/ initialize inputsload = 0;clk = 0;clr = 0;d = 4b0101;/ wait 100 ns for global reset to finish#100;endalways #24 load=load;always #10 clk=clk;always #42 clr=clr;endmodule仿真结果:寄存器清零信号有效时的仿真结果寄存器置数信号有效时的仿真结果三、讨论与分析将任务一的程序下载到basys2板子上后,可实现秒脉冲发生器的功能。由任务二的仿真结果可以看出,当清零信号有效时(clr=1),无论输入数据为何值(此时为0101),寄存器的数据都被清零(即q=0000);当置数信号有效且清零信号无效时(load=1且clr=0),输入数据(此时为0101)被寄存到寄存器中(即q=0101);通过这次实验我学习使用hdl进行时序电路设计,并且学习编辑顶层文件和用户约束文件,并且熟悉了同步与异步的概念及实现方法,熟悉在basys2开发板简单外围设备的控制,了解了时钟的分频方法及占空比的调节。hdl综合实验一、 设计要求数字钟:设置一个完整的数字钟,小时和分钟用数码管显示,秒用发光二极管闪烁显示,每秒闪烁一次。如有可能,请增加校时功能。二、 hdl综合实验任务数字钟的设计实验方法和步骤(1) 建立工程文件,输入hdl程序如下:moduleclocktjjs(inputclk,inputclr,input 1:0flag,input 5:0stime,inputseth,inputsetm,outputsflash,outputreg6:0a_to_g,outputreg3:0an );reg 3:0cent60l;reg 3:0cent60h;reg 3:0cent24l;reg 3:0cent24h;reg 3:0led1,led2,led3,led4;reg 1:0s;reg 3:0digit;reg 16:0clkdiv;reg 26:0q1;reg sec;integerss;integeri;initial begincent60l=9;cent60h=5;cent24l=3;cent24h=2;ss=0;led4=cent60l;led3=cent60h;led2=cent24l;led1=cent24h;endalways(*)beginan=4b1111;s=clkdiv16:15;ans=0;case(s)0:digit=led1;1:digit=led2;2:digit=led3;3:digit=led4;default:digit=led4;endcasecase(digit)0:a_to_g=7b0000001;1:a_to_g=7b1001111;2:a_to_g=7b0010010;3:a_to_g=7b0000110;4:a_to_g=7b1001100;5:a_to_g=7b0100100;6:a_to_g=7b0100000;7:a_to_g=7b0001111;8:a_to_g=7b0000000;9:a_to_g=7b0001100;ha:a_to_g=7b0001000;hb:a_to_g=7b1100000;hc:a_to_g=7b0110001;hd:a_to_g=7b1000010;he:a_to_g=7b0110000;hf:a_to_g=7b0111000;default:a_to_g=7b0000001;endcaseendalways(posedgeclk)beginclkdiv=clkdiv+1;end/时钟程序,计时加校时always(posedgeclk or posedgeclr)beginif(clr=1)beginq1=0;led1=0;led2=0;led3=0;led4=0;cent60l=0;cent60h=0;cent24l=0;cent24h=0;ss=0;endelse if(flag=2b10)/调分状态beginif(setm)beginif(stime=59)beginfor(i=0;i6;i=i+1)beginif(stime5:0-i*1010)begincent60l=stime5:0-i*10;cent60h=i;i=6;endendendelsebegincent60h=0;cent60l=0;endss=0;led43:0=cent60l3:0;led33:0=cent60h3:0;endendelse if(flag=2b11)/调时状态beginif(seth)beginif(stime=23)beginfor(i=0;i=3;i=i+1)beginif(stime5:0-i*1010)begincent24l=stime5:0-i*10;cent24h=i;i=6;endendendelsebegincent24l=0;cent24h=0;endss=0;led23:0=cent24l3:0;led13:0=cent24h3:0;endendelse if(flag=2b00)beginif(q1=50000000)beginq1=0;sec=sec;led43:0=cent60l3:0;led33:0=cent60h3:0;led23:0=cent24l3:0;led13:0=cent24h3:0;ss=ss+1;if(ss=59)beginss=0;cent60l=cent60l+1;if(cent60l=9)begincent60l=0;cent60h=cent60h+1;endif(cent60h=5¢60l=9)begincent60l=0;cent60h=0;cent24l=cent24l+1;if(cent24l=9)begincent24l=0;cent24h=cent24h+1;endif(cent24h=2¢24l=3)begincent24l=0;cent24h=0;endendendendelseq1=q1+1;endendassignsflash=sec;endmodule(2) 编写约束文件:neta_to_g6loc=l14;neta_to_g5loc=h12;neta_to_g4loc=n14;neta_to_g3loc=n11;neta_to_g2loc=p12;neta_to_g1loc=l13;neta_to_g0loc=m12;netan3loc=f12;netan2loc=j12;netan1loc=m13;netan0loc=k14;netclkloc=b8;netclrloc=g1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电视台新闻编辑每日工作内容安排
- 高新技术企业法律合规部工作手册
- 京东物流配送优化面试指南
- 网络文学编辑面试技巧
- 国企能源行业技术岗位面试宝典
- 外包服务公司项目管理的职位面试要点解析
- 银行风险控制岗位面试技巧详解
- 中医药研究所医学研究岗面试解析
- 人工智能产品的创新:设计与实践
- 猜猜他是谁作文
- 七年级下册语文必背古诗文(字帖描红)
- 危险的毒蘑菇安全教育
- GB/Z 17626.1-2024电磁兼容试验和测量技术第1部分:抗扰度试验总论
- T-GXAS 341-2022 CT血管造影检查护理规范
- 先天性斜颈的临床护理
- 非遗文化介绍课件:篆刻
- 医院培训课件:《医疗纠纷预防和处理条例》
- 人教A版(2019)必修第二册6.2平面向量的运算(精练)(原卷版+解析)
- 人教版七年级历史上册(1-5课)测试卷及答案
- GB/T 36548-2024电化学储能电站接入电网测试规程
- 扣件式钢管脚手架租赁合同
评论
0/150
提交评论