数字部分第一次课程一、本学期课程安排三、本次课程实验内容二、使用ISE工具进行EDA设计的方法四、Verilog基础语法(自学)五、BASYS2开发板说明(自学)本学期课程安排周课程内容基本要求(平时成绩*80%)计划学时提高要求(平时成绩*20%)学生实验学时(64学时)71.用EDA技术实现编码器①HDL举例—译码器设计、仿真、下载(1)用FPGA实现4-2线优先编码器p238,验收4(1)用FPGA实现十进制加/减可逆计数器(p285/286)4+482.逻辑门、触发器①实验任务(*555应用自学)②集成逻辑门(LED的接法)③数字电路的安装与测试技术1.OC门(P145)2.2-4线译码器+触发器流水灯;(P163设计课题2)44+4944+4本学期课程安排周课程内容基本要求(平时成绩*80%)计划学时提高要求(平时成绩*20%)学生实验学时(64学时)104.EDA多功能数字钟(8+4学时)①设计任务与要求(P285设计课题4)②HDL分层次、分模块的设计举例—60或者100进制计数器设计、仿真、下载(演示)(1)用EDA技术设计多功能数字钟(p198/286)能显示小时、分钟、秒钟(时、分用显示器,秒用LED)能调整小时、分钟的时间4(1)任意闹钟;(2)小时为12/24进制可切换(3)报正点数(几点钟LED闪烁几下)411EDA多功能数字钟验收EDA多功能数字钟验收4412集成计数器(4+4学时)设计要求及思路(两个实验,选做一个(分单双号),要求:上学期实验成绩在85分以上者,必须选实验2)篮球24秒或数字秒表插板要求:1.P188设计课题124s定时器(含555振荡器1kHz)2.P189设计课题2秒表4插板数字钟基本功能扩展功能4本学期课程安排周课程内容基本要求(平时成绩*80%)计划学时提高要求(平时成绩*20%)学生实验学时(64学时)14篮球24秒或数字秒表插板验收篮球24秒或数字秒表插板验收4篮球24秒或数字秒表插板验收415数字部分操作考试(4学时)考察学生设计单元电路、安装、调试电路,并测量电路主要性能指标的基本实践能力。4现场验收,并记录实验进展、指标等4使用ISE工具进行EDA设计的方法步骤举例:在Basys2开发板上实现流水灯XilinxFPGA的开发流程设计思想的形成电路输入(原理图、波形图、文本)编译处理(逻辑综合、优化、适配)功能仿真时序仿真芯片编程电路系统测试•可用资源–4个七段数码管(AN3-AN0)(不含8421译码);–8个LED指示灯(LD7-LD0);–4个按键开关(BTN3-BTN0);–8个滑动开关(SW7-SW0);–1个PS/2接口;–1个8位VGA显示接口;–4个6针PMOD用户扩展接口;–可配置晶振(25,50,100MHz);–USB2.0接口。BASYS2实验板BASYS2实验板BASYS2各IO管脚定义发光二极管时钟拨码开关按键数码管LD0M5MCLKB8SW0P11BTN0G12AN0F12LD1M11RCCLKC8SW1L3BTN1C11AN1J12LD2P7CCLKN12SW2K3BTN2M4AN2M13LD3P6UCLKM6SW3B4BTN3A7AN3K14LD4N5SW4G3CAL14LD5N4SW5F3CBH12LD6P4SW6E2CCN14LD7G1SW7N3CDN11CEP12CFL13CGM12DPN131.新建工程流水灯设计举例(1)开启ISE13.1软件:开始程序XilinxISEDesignSuite13.1ISEDesignToolsProjectNavigator,会出现ISE13.1的画面.(2)在ISE13.1软件环境下,开启一个新的工程:FileNewProject.(3)单击next,下一个画面就是设定硬件FPGA的参数---请对照实验板芯片系列进行选择(4)点击next.此时出现此项目所有设定的信息,若需重新设定,则可back.若无误,则按finish2.创建新的Verilog源创建一个新的Verilog源文件(1)此时出现一个项目的框架,可以允许使用者开始进行项目的设计.(2)创建新的设计文件:ProjectNewSource;选择VerilogModule,并设定文件名称为led(3)点击next,出现NewSourceWizard,设定此设计的输出输入信号.(4)点击next,出现Summary,设点击finish,完成此设计的输出输入信号.(5)按next,再按finish;此时项目加入此模块之后,在Sourcees的窗口中会出现led.v的编辑窗口.(6)在ProjectNavigator右边的工作区可以看到LED.v的文件内容,此时可以修改或改变设计内容,在修改完成之后,利用FileSave来储存文件.(7)在撰写LED.v内容之时,可以參考ISE所附的语言模板LanguageTemplate.在本实验中我们需要了解计数器模块,点击软件界面上方的语言模板的快捷键,然后选择“Verilog_SynthesisConstructs_CodingExamples_Counters”,然后选择所需的计数器类型以做参考。实验代码如下:////////////////////////////////////////////////////////////////////////////////////Company://Engineer:////CreateDate:12:07:2406/21/2011//DesignName://ModuleName:led////////////////////////////////////////////////////////////////////////////////////moduleled(inputclk,inputreset,output[3:0]led_out);reg[26:0]counter;always@(posedgeclk)beginif(reset)counter=0;elsecounter=counter+1;end//assignled_out=counter[3:0];//仿真时将counter的低4位传给led_out以提高频率,加快仿真速度assignled_out=counter[26:23];//实际下载时将counter的高4位传给led_out以降低频率,看到led灯闪烁endmodule(1)双击Synthesize-xst进行编译纠错,以确认设计的正确与否。(2)点开综合选项,双击ViewRTLSchematic,并选择Startwithaschematicofthetop-levelblock选项3编译检错并查看电路(3)点击OK,出现设计的整个电路模块图(4)直接双击电路顶层,查看内部电路模块(5)如果需要查看设计内部具体有哪些实际资源组成,则可以点开综合选项,双击“viewtechnologyschematic”(6)点击OK,出现设计顶层(7)直接双击顶层电路,则可以看到设计的内部电路是由哪些资源组成的。(8)在Processes的窗口中,直接以鼠标双击GenerateProgrammingFile的选项.此时ISE会自动执行并产生可以下载的.bit类型文件,此步骤是最直接验证设计工作的正确性与否.---可以等待仿真验证后再执行。(9)若在每一个步骤后都出现绿色的打勾,代表程序成功跑完而没有错误和警告。若有黄色的警告,一般可以忽略。若有一个程序都出现红色打叉[X]的符号,代表有错误,可以依显示结果来侦错.---可以等待仿真验证后再执行。4设计仿真(1)点击ledHDL文件,创建一个新的测试平台源文件:ProjectNewSource.在源文件向导里,点击VerilogTestFixture作为源文件类型,输入文件名称为test.(2)一直点击next,直到点击finish,自动生成test.v的测试模板,在此基础上编辑输入激励:时钟周期设定为10ns,复位信号为高持续500ns后,再将复位信号置低。在实际烧录FGPA之前,为了验证设计的正确性,可以先利用测试模板(Testbench)来验证设计的正确性。在这里请注意一下,为了加快仿真进程,仿真时将counter的低4位传给led_out以提高频率,更快地看到输出仿真结果。这时,将代码led.v的第37行使能,第38行不使能,然后保存。(3)保存test.v。选择sourcesforSimulation双击“BehaviorChecksyntax”。(4)双击SimulateBehavioralModel,ISE仿真器打开并开始仿真,,将图形界面缩小到合适的界面,其仿真结果如图所示:(5)我们也可以查看设计的内部信号。添加内部信号的步骤是:在Isim的InstancesandProcesses窗口中点选test,然后点击UUT,在object窗口则会出现全部信号:(6)拖动counter到仿真波形里,点击restart按钮,再点击runall按钮,运行一段时间后点击暂停,就可以看到内部信号仿真图。为了查看方便,将二进制数改为10进制无符号数的形式,选择counter信号,点击右键选择radix扩展栏中的UnsignedDecimal,由图可知counter信号是在正确计数的。(7)关闭Isim仿真器并保存。5创建约束(1)设定I/O脚的位置,可以利用LED.UCF来设定I/O脚的位置,以得到正确的输出文件.ProjectNewSource.设定输入的文件格式为ImplementationConstraintsFile,文件名称为led(自动储存为led.UCF)(2)一直点击next,最后按finish(3)选择sourceforImplementation选项(4)点选Sourcees窗口内的led.ucf,点击processess窗口里的userconstraints,双击editconstraints(txt),输入后储存文件.其中,“LOC”代表管脚定义,相关管脚定义请参考实验板使用手册Basys2_rm.pdf或参照表4.3.1;“IOSTANDARD”代表电平标准,实验中设定为LVCMOS33;“SLEW”代表信号的翻转速率,有fast和slow之分,默认是slow,时钟信号clk变化比较快可设定为fast。(4)在执行设计之前,需将之前我们仿真时修改的代码给还原,将代码led.v的第37行去能,第38行使能,然后保存。(5)重新执行GenerateProgrammingFile,确认设计无误(即确认所有步骤后均出现绿色的打勾,表示无错或至少没有步骤出现红色打叉[X]的符号,表示没有不可容忍的错误)。6下载设计到实验板(1)在完成设计验证之后,就可以将led.bit写入到FPGA内部,此时连接BASYS2实验板的USB下载线到PC机,并打开BASYS2实验板上的电源开关,在PC机桌面点击“开始-Digilent-Adept-adept”,打开专门的下载工具。本次课程的实验内容•用FPGA实现4-2线优先编码器(P238)•用FPGA实现十进制加减可逆计数器(选做内容,P285P286)实验报告要求•实验名称•实验任务及要求•实验条件(实验仪器、软件、实验板等)•电路的设计过程:–组成框图、工作原理–电路设计(或源代码及注释)及仿真波形•调试过程:–调试步骤–调试中碰到的问题及解决方法–最后观察到的实验结果•实验的收获、体会与改进建议(含对实验课程看法)参考资料•罗杰主编.《VerilogHDL与数字ASIC设计基础》.华中科技大学出版社,2008•王金明,杨吉斌.《数字系统设计与VerilogHDL》.电子工业出版社•夏宇闻.Verilog数字系统设计教程.北航出版社,2004•杨春玲,朱敏.EDA技术与实验.哈尔滨工业大学出版社,2009Verilog语法(自学)•自学参考资料1:VerilogHDL基础.