您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 可编程逻辑器件设计及应用实验报告
12020年5月29日可编程逻辑器件设计及应用实验报告文档仅供参考22020年5月29日HHaarrbbiinnIInnssttiittuutteeooffTTeecchhnnoollooggyy可编程逻辑器件设计及应用实验报告文档仅供参考12020年5月29日实验一:电路图方法设计:异步16分频一、实验内容1、熟悉ISEM的安装及使用2、熟悉电路图方式的输入方法;3、熟悉ISE环境下的波形仿真4、学习SIE安装过程5、建立一个新的工程(cpld9500系列)6、输入电路图异步16分频,如图1-1所示:图1-1二实验结果1、异步16分频电路图如图1-2所示:文档仅供参考22020年5月29日图1-22、建立测试波形方法仿真激励图形,如图1-3所示:图1-33、引脚约束条件如下:NETCLKLOC=P6;NETCLRLOC=P7;NETO1LOC=P42;文档仅供参考32020年5月29日NETO2LOC=P37;NETO3LOC=P40;NETO4LOC=P39;4、最终仿真结果如图1-4,1-5所示:图1-4图1-5三实验结果讨论分析经过本次试验,初步掌握了ISE的使用方法,经过ISE自带库文件完成电路的搭建,实现了对输入时钟的2分频,4分频,8分频和16分频,经过最终的试验验证得到了正确的试验结果。文档仅供参考42020年5月29日指导教师签字:文档仅供参考52020年5月29日实验二电路图方法分层设计:全加器一、实验内容1、建立一个新的工程(cpld9500系列)2、建立一个独立的电路图(All_ADD)3、输入电路图:一位全加器图2-1一位全加器4、建立测试波形方法仿真激励图形图2-2波形仿真激励5、功能仿真记录结果,分析正确性。文档仅供参考62020年5月29日6、生成电路模块图2-3模块建立7、利用电路模块设计8位全加器,(新电路图或者顶层电路图)图2-48位全加器(顶层电路图)8、建立测试波形方法仿真激励图形文档仅供参考72020年5月29日图2-58位全加器波形仿真激励9、学习总线数据预置方式:经过使用相同名字来对总线进行连接设置,和总线数据格式。二实验结果一位全加器功能仿真结果:图2-6功能仿真结果8位全加器功能仿真结果一(无进位):文档仅供参考82020年5月29日图2-7功能仿真结果8位全加器功能仿真结果二(有进位):图2-8功能仿真结果三实验结果讨论分析本次试验充分体现了模块化设计思想,首先我们运用库文件实现了一位全加器,也即实验中的ALL_ADD模块,在实现此模块后进行仿真分析,确定无误后,运用8个一位全加器实现实现8位全加器,考虑进位。在实验中进一步熟悉了软件的使用流程和具体的实际操作如操作总线结构等基本操作,可谓知行合一。文档仅供参考92020年5月29日指导教师签字:文档仅供参考102020年5月29日实验三Verilog语言方法设计:8位全加器一、实验内容1、建立一个新的工程(cpld9500系列)2、建立一个Verilog模块(All_ADD8)图3-1建立一个新的verilog模块3、输入全加器文档仅供参考112020年5月29日图3-2输入全加器4、建立测试波形方法仿真激励图形测试波形一:图3-3测试波形测试波形二:文档仅供参考122020年5月29日图3-4测试波形5、功能仿真记录结果,分析正确性。6、建立Verilog测试模块源代码如下:7、功能仿真文档仅供参考132020年5月29日记录结果,分析正确性。进位结果。理解掌握语言描述。8、8位可预置计数器(试验扩展)9、建立一个Verilog模块(Counter8)源代码如下:`timescale1ns/1psmoduleextentest_v;reg[7:0]D;regCLK;regCLR;regPR;文档仅供参考142020年5月29日wire[7:0]Q;extendexuut(.D(D),.CLK(CLK),.CLR(CLR),.PR(PR),.Q(Q));parameterPERIOD=200;alwaysbeginCLK=1'b0;#(PERIOD/2)CLK=1'b1;#(PERIOD/2);endinitialbeginD=0;CLR=0;PR=0;#100;每隔100ns变换一次输入数据PR=1;D=17;CLR=0;文档仅供参考152020年5月29日#100;PR=0;#100;endendmodule10、学习总线数据预置方式11、自己建立仿真过程(波形+Verilog测试)二实验结果测试波形一结果:图3-5仿真测试结果测试波形二结果:文档仅供参考162020年5月29日图3-6仿真测试结果文件测试结果:图3-7仿真测试结果更改数据测试结果:图3-8仿真测试结果文档仅供参考172020年5月29日三实验结果讨论分析本次试验与上次试验的不同之处在于:上次试验是经过库文件链接电路图先实现1位全加器,在此基础上运用8个1位全加器按照逻辑链接在一起实现8位全加器,而在本次试验中,我们运用的是Verilog语言实现,个人感觉这种更加简单清楚,首先是这种方法省去了电路链接的麻烦,其次是它的实现过程中只需要编程实现模块即可,不用先生成1位全加器,然后再去实现8位全加器,编程仿真实现想要的结果后能够直接生成8位全加器模块,操作极为简单。指导教师签字:文档仅供参考182020年5月29日实验四LED显示模块设计一、实验内容1、在上一工程基础上继续做a、工程名称:MyProject1b、选择器件:Spartan3E2、建立LED显示模块(verilog)LED译码显示模块(最高4位)8bit4bit图4-1LED显示模块功能说明:a、数据输入:4bits;b、数据输出;8bits;c、功能:翻译16进制到7段LED显示(参照显示16进制数对照表)过程说明:a、建立Verilog模块;b、建立Verilog仿真;c、验证模块正确性;3、建立显示数据锁存分配模块(verilog)文档仅供参考192020年5月29日显示数据锁存分配模块8bitCK4bit4bit4bit4bit次低4位低4位高4位最高4位图4-2数据锁存模块功能说明:a、数据输入:8bits。b、CK:锁存信号,上升沿锁存输入数据c、数据输出:锁存输出最后输入的两字节数据,分别对应4位输出过程说明:a、建立Verilog模块;b、建立Verilog仿真;c、验证模块正确性;4、建立电路图方式顶层模块显示模块文档仅供参考202020年5月29日图4-3顶层5、联合验证;二实验结果输入波形一:图4-4测试波形得到的相应仿真结果图一:图4-5仿真结果输入波形二:文档仅供参考212020年5月29日图4-6测试波形得到的相应仿真波形结果图二:图4-7仿真结果三实验结果讨论分析本次试验依然使用的是Verilog语言,个人觉得实现的关键之处在于输入输出的对应,我们对照共阴极发光二极管的显示模式,为每一个输入经过编程实现其对应的输出即可。本次试验更深入了解的Verilog编程语言,以及电路设计的模块化实现,在本次试验中引入了时钟,对时钟的生成与操作有了初步的了解为下一次试验打下了基础,与此同时,我还学习到了文档仅供参考222020年5月29日Verilog语言一些特有的编程规则。指导教师签字:实验五串行口设计一、实验内容预备知识:串行通信:数据一位一位次序发送或接收。异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。用这种格式表示字符,则字符能一个接一个地传送。无奇、偶校验的工作模式(10位):有奇、偶校验的工作模式(11位):文档仅供参考232020年5月29日(1)波特率:在串行通信中,用波特率来描述数据的传输速度,所谓波特率,即每秒钟传送的二进制位数,其单位是bps(bitspersecond).它是衡量串行数据速度快慢的重要指标.国际上规定的一个标准波特率系列:110,300,600,1200,1800,2400,4800,9600,14.4K,19.2K,28.8K,33.6K,56Kbps(2)奇偶校验:对传送数据中1的个数进行校验,若二者不一致,则说明数据传送过程中出现了差错.奇偶校验的特点是按字符校验,数据传输速度将受到影响,一般只用于异步串行通信中。实验过程:1、建立一个新的工程a、工程名称:MyProject1b、选择器件:Spartan3E2、建立模式控制模块(verilog)模式控制模块8141DataInWRFreOutModOut文档仅供参考242020年5月29日图5-1模式控制模块功能说明:a、DataIn:控制数据输入、8bits;低4位用于选择波特率模式,最高位用于选择奇、偶校验是否有效;b、WR:控制数据写入,1bit;上升沿锁存输入数据;c、FreOut:波特率模式选择输出,DataIn低4位,由WR上升沿锁存保持;0—9变化;大于9不变化。d、ModOut:奇、偶校验模式选择;DataIn最高位,由WR上升沿锁存保持;e、默认值:FreOut=6;ModOu=1;过程说明:a、建立Verilog模块;b、建立Verilog仿真;c、验证模块正确性;源代码如下:moduleModeCon(DataIn,WR,FreOut,ModOut);input[7:0]DataIn;inputWR;output[3:0]FreOut;outputModOut;regModOut=1;//ModOut初始值为1文档仅供参考252020年5月29日reg[3:0]FreOut=6;//FreOut初始值为6always@(posedgeWR)beginModOut=DataIn[7];if(DataIn[3:0]9)FreOut=DataIn[3:0];endendmodule测试代码如下:moduleModeConTest_v;reg[7:0]DataIn;regWR;wire[3:0]FreOut;wireModOut;parameterPERIOD=100;//value=时钟周期(单位ns)alwaysbeginWR=1'b0;#(PERIOD/2)WR=1'b1;#(PERIOD/2);end//InstantiatetheUnitUnderTest(UUT)文档仅供参考262020年5月29日ModeControluut(.DataIn(DataIn),.WR(WR),.FreOut(FreOut),.ModOut(ModOut));initialbeginDataIn=0;WR=0;//Wait100nsforglobalresettofinish#100;DataIn=16'h12;#100;DataIn=16'h23;#100;DataIn=16'h44;#100;DataIn=16'h96;//Addstimulushereendendmodule文档仅供参考272020年5月29日3、建立波特率发生器模块(verilog)波特率发生器模块1FreSelCLK_S411CLKCLK_S16图5-2波特率发生模块功能说明:a、FreSel:波特率控制数据输入、4bits;0—9变化,对应选择波特率300、600、1200、1800、2400、4800、9600、14.4K、19.2K、28.8Kbps共10种变化。b、CLK:时钟射入,频率为22.1184MHz;c、CLK_S:对应波特率分频输出,根据FreSel输入控制数据进行对应分频,对应模式有300、600、1200、1800、2400、4800、9600、14.4K、19.2K、28.8Kbpsd、CLK_S16:对应波特率16倍分频输出;过程说明:a、建立Verilog模块;b、建立Verilog仿真;c、验证模块正确性;d、建立电路图方式顶层模块Serial文档仅供参考282020年5月2
本文标题:可编程逻辑器件设计及应用实验报告
链接地址:https://www.777doc.com/doc-6679700 .html