ISP器件设计与应用_第1页
ISP器件设计与应用_第2页
ISP器件设计与应用_第3页
ISP器件设计与应用_第4页
ISP器件设计与应用_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ISP器件设计与应用ISP器件设计与应用ISP器件设计与应用一、实验目的了解并掌握采用可编程逻辑器件实现数字电路与系统的方法;学习并掌握采用Xilinx_ISE软件开发可编程器件的过程;学习使用verilogHDL描述数字逻辑电路与系统的方法;掌握分层次、分模块的电路设计方法,熟悉使用可编程器件实现数字系统的一般步骤。书籍能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进ISP器件设计与应用ISP器件设计与应用ISP器件设计与应用1一、实验目的了解并掌握采用可编程逻辑器件实现数字电路与系统的方法;学习并掌握采用Xilinx_ISE软件开发可编程器件的过程;学习使用verilogHDL描述数字逻辑电路与系统的方法;掌握分层次、分模块的电路设计方法,熟悉使用可编程器件实现数字系统的一般步骤。一、实验目的了解并掌握采用可编程逻辑器件实现数字电路与系统的二、实验原理——传统数字系统设计流程设计目标人工给出真值表人工化简卡诺图得到最简表达式人工使用LSI电路实现系统调试和验证二、实验原理——传统数字系统设计流程设计目标人工给出真值表二、实验原理——现代数字系统设计流程设计目标设计输入编译、功能级仿真逻辑综合时序仿真系统调试与验证entitylab1isport(a,b,c:instd_logic;y:outstd_logic);endlab1;

architecturertloflab1isbeginy<=aor(candb);endrtl;配置文件加载后,用示波器、逻辑分析仪、软件程序观察设计仿真转换(Translate)映射(Map)布局和布线(PAR)设计下载FPGA设计实现CLBCLBCLBCLB创建约束二、实验原理——现代数字系统设计流程设计目标设计输入编译、可用资源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实验板二、实验原理——BASYS2实验板二、实验原理——BASYS2各IO管脚定义发光二极管时钟拨码开关按键数码管LD0M5MCLKB8SW0P11BTN0G12AN0F12LD1M11RCCLKC8SW1L3BTN1C11AN1J12LD2P7CCLKN12SW2K3BTN2M4AN2M13LD3P6UCLKM6SW3B4BTN3A7AN3K14LD4N5SW4G3CAL14LD5N4SW5F3CBH12LD6P4SW6E2CCN14LD7G1SW7N3CDN11CEP12CFL13CGM12DPN13二、实验原理——BASYS2各IO管脚定义发光二极管时钟拨源文件窗口处理子窗口脚本子窗口工作区子窗口二、实验原理——ISE集成开发环境主界面源文件窗口处理子窗口脚本子窗口工作区子窗口二、实验原理——1.新建工程

(1)开启ISE13.4软件:开始程序XilinxISEDesignSuite13.4ISEDesignToolsProjectNavigator,或直接双击桌面上的快捷图标,会出现ISE13.4的画面.三、设计举例---流水灯1.新建工程三、设计举例---流水灯流水灯---新建工程项目名项目路径顶层模块类型(2)在ISE13.4软件环境下,开启一个新的工程:FileNewProject.流水灯---新建工程项目名项目路径顶层模块类型(2)在IS流水灯---新建工程(3)单击next,下一个画面就是设定硬件FPGA的参数----请参照实验板芯片系列进行选择流水灯---新建工程(3)单击next,下一个画面就是设定硬流水灯---新建工程(4)点击next.此时出现此项目所有设定的信息,若需重新设定,则可back.若无误,则按finish流水灯---新建工程(4)点击next.此时出现此项目所有流水灯---创建新的Verilog源文件(1)此时出现一个项目的架构,可以允许使用者开始进行项目的设计.(2)创建新的设计文件:ProjectNewSource;选择VerilogModule,并设定文件名称为led流水灯---创建新的Verilog源文件(1)此时出现一个项流水灯---创建新的Verilog源文件(3)点击next,出现NewSourceWizard,设定此设计的输出输入信号.

clk:input(时钟输入信号).reset:input(当Reset=‘1’时,清除内部计数器)led_out:Output(输出信号),勾上Bus,MSB=3,LSB=0.流水灯---创建新的Verilog源文件(3)点击next,流水灯---创建新的Verilog源文件(4)按next,再按finish;此时项目加入此模块之后,在Sourcees的窗口中会出现led.v的编辑窗口。(5)在ProjectNavigator右边的工作区可以看到led.v的文件内容,此时可以修改或改变设计内容,在修改完成之后,利用FileSave来储存文件.(6)在撰写led.v内容之时,对一些模块不熟悉的话可以參考ISE所附的LanguageTemplate。在本实验中我们如需要了解计数器模块,点击软件界面上方的语言模板的快捷键,然后选择“VerilogSynthesisConstructsCodingExamplesCounters”,然后选择所需的计数器类型以做参考。流水灯---创建新的Verilog源文件(4)按next,再流水灯---创建新的Verilog源文件led.v代码:流水灯---创建新的Verilog源文件led.v代码:流水灯---编译检错并查看电路(1)代码写完之后,进行句法检查。点开Synthesize-xst,双击CheckSyntax。如果语法没错,是绿色的打勾,否则会有红色的错误提示。流水灯---编译检错并查看电路(1)代码写完之后,进行句法检流水灯---编译检错并查看电路(2)双击Synthesize–xst进行综合,确认设计的正确与否。还可以查看设计RTL电路。点开综合选项,双击ViewRTLSchematic,并选择Startwithaschematicofthetop-levelblock选项流水灯---编译检错并查看电路(2)双击Synthesize流水灯---编译检错并查看电路(3)点击OK,出现设计的整个电路模块图(4)直接双击电路顶层,查看内部电路模块流水灯---编译检错并查看电路(3)点击OK,出现设计的整个流水灯---编译检错并查看电路(5)如果需要查看设计内部具体有哪些实际资源组成,则可以点开综合选项,双击“viewtechnologyschematic”流水灯---编译检错并查看电路(5)如果需要查看设计内部具体流水灯---编译检错并查看电路(6)点击OK,出现设计顶层(7)直接双击顶层电路,则可以看到设计的内部电路是由哪些资源组成的。流水灯---编译检错并查看电路(6)点击OK,出现设计顶层(流水灯---编译检错并查看电路(8)在Processes的窗口中,直接以鼠标双击GenerateProgrammingFile的选项.此时ISE会自动执行并产生可以下载的.bit类型文件,此步骤是最直接验证设计工作的正确性与否.---也可以等待仿真验证后再执行。(9)若在每一个步骤后都出现绿色的打勾,代表程序成功跑完而没有错误和警告。若有黄色的警告,一般可以忽略。若有一个程序都出现红色打叉[X]的符号,代表有错误,可以依显示结果来侦错.---也可以等待仿真验证后再执行。流水灯---编译检错并查看电路(8)在Processes的窗流水灯---设计仿真

当检查输入源程序句法没有错误后,一般在设计综合之前,可以做行为仿真,以验证代码的行为功能是否正确,利用测试模板(Testbench)来验证设计的正确性。

在这里请注意一下,为了加快仿真进程,仿真时将counter的低4位传给led_out以提高频率,更快地看到输出仿真结果。这时,将代码led.v的第37行使能,第38行不使能,然后保存。流水灯---设计仿真 当检查输入源程序句法没有错误后,一般在流水灯---设计仿真 (1)点击ledHDL文件,创建一个新的测试平台源文件:ProjectNewSource.在源文件向导里,点击VerilogTestFixture作为源文件类型,输入文件名称为test.流水灯---设计仿真 (1)点击ledHDL文件,创建一流水灯---设计仿真(2)一直点击next,直到点击finish,自动生成test.v的测试模板,在此基础上编辑输入激励:时钟周期设定为10ns,复位信号为高持续500ns后,再将复位信号置低。`timescale1ns/1ps//////////////////////////////////////////////////////////////////////////////////Company://Engineer:////CreateDate:12:25:2706/21/2011//DesignName:led//ModuleName:E:/Training/training_demo/Verilog/lab1_4bitsLEDs/test.v//ProjectName:lab1_4bitsLEDs//TargetDevice://Toolversions://Description:////VerilogTestFixturecreatedbyISEformodule:led////Dependencies:////Revision://Revision0.01-FileCreated//AdditionalComments://////////////////////////////////////////////////////////////////////////////////流水灯---设计仿真(2)一直点击next,直到点击fin流水灯---设计仿真moduletest; //Inputs regclk; regreset; //Outputs wire[3:0]led_out;parameterPERIOD=10;

//InstantiatetheUnitUnderTest(UUT) leduut( .clk(clk), .reset(reset), .led_out(led_out) );

alwaysbegin clk=1'b0; #(PERIOD/2)clk=1'b1; #(PERIOD/2); end initialbegin //InitializeInputs clk=1'b0; reset=1; //Wait500nsforglobalresettofinish #500; reset=0;

//Addstimulushere end

endmodule流水灯---设计仿真moduletest;流水灯---设计仿真(3)保存test.v。选择sourcesforSimulation双击BehavioralCheckSyntax流水灯---设计仿真(3)保存test.v。选择sourc流水灯---设计仿真(4)双击SimulateBehavioralModel,ISE仿真器打开并开始仿真,将图形界面缩小到合适的界面,其仿真结果如图所示:由图所示,可见Isim仿真器自动运行到1us处停止运行,并按照测试文件规定的时间方式开始运行。led_out在每个时钟上升沿到来时加1,结果是正确的。流水灯---设计仿真(4)双击SimulateBehav流水灯---设计仿真(5) 我们也可以查看设计的内部信号。添加内部信号的步骤是:在Isim的InstancesandProcesses窗口中点选test,右键选Expland,然后点击UUT,再按右键选Addtowavewindow,在object窗口则会出现全部信号:可添加对模块内部信号如counter[26:0]的观察。流水灯---设计仿真(5) 我们也可以查看设计的内部信号。流水灯---设计仿真

(6)拖动counter到仿真波形里,点击restart按钮,再点击runall按钮,运行一段时间后点击暂停,就可以看到内部信号仿真图。为了查看方便,将二进制数改为10进制无符号数的形式,选择counter信号,点击右键选择radix扩展栏中的UnsignedDecimal,由图可知counter信号是在正确计数的。流水灯---设计仿真(6)拖动counter到仿真波形里流水灯---设计仿真(8)关闭Isim仿真器并保存。(7)为控制Isim仿真器运行时间,可在Isimconsole中键入run1us等运行控制命令,或直接利用Isimsimulationbreak来控制Isim仿真器运行时间如图。流水灯---设计仿真(8)关闭Isim仿真器并保存。(7)流水灯---创建约束

约束主要包括全局时序约束(周期约束)和管脚约束,可以使用图形化界面设置和直接编辑UCF文件两种方式。一般初学者可以采用图形化界面设置的方式,比较直观,软件自动生成相关的约束而不需要手动编辑;如果是有一定经验的设计人员,对约束语法比较熟悉,且会涉与到一些高级约束时,则可以考虑使用直接编辑UCF文件的方式或者两种方法相结合。流水灯---创建约束约束主要包括全局时序约束(周期约流水灯---创建约束---图形化界面设置方式(1)选中Implmentation,点击顶层文件led(led.v),按Yes,打开Process窗口,找到UserConstraints,双击CreatTiminngConstraints流水灯---创建约束---图形化界面设置方式(1)选中Im流水灯---创建约束---图形化界面设置方式(2)在弹出的ConstraintType窗口中选择ClockDomains流水灯---创建约束---图形化界面设置方式(2)在弹出的C流水灯---创建约束---图形化界面设置方式(3)双击clk;打开进入时钟设定界面,设置相应参数,因为开发板提供的系统时钟为50MHz,所以设置时钟的周期为20ns,上升沿有效,占空比设为50%(4)点击Create并点击OK,保存后再关闭TimingConstraints界面。---完成了系统时钟周期约束流水灯---创建约束---图形化界面设置方式(3)双击clk流水灯---创建约束---图形化界面设置方式(5)开始管脚约束:回到Process窗口选择UserConstraints中的I/OPinPlanning(PlanAhead)-Post-Synthesis,双击打开PlanAhead界面(本过程需要一定时间,视计算机配置要1分钟左右)。(如果没有.ucf文件,软件会提示是否需要自动创建ucf文件,点击Yes)流水灯---创建约束---图形化界面设置方式(5)开始管脚约流水灯---创建约束---图形化界面设置方式(6)在打开的PlanAhead中对管脚进行设定,我们先找到I/OPorts窗口中的clk端口流水灯---创建约束---图形化界面设置方式(6)在打开的P流水灯---创建约束---图形化界面设置方式(7)鼠标点在Site,在下拉窗口中选择B8(管脚位置参考BASYS2使用手册与表4.2.1)。I/OStd默认是LVCMOS25,驱动强度DriveStrength默认是12mA,翻转速率SlewType默认是Slow,因时钟变化速度比较快将SlewType属性其改为FAST。流水灯---创建约束---图形化界面设置方式(7)鼠标点在S流水灯---创建约束---图形化界面设置方式(8)其他端口也是类似操作,最终的端口设定如下图所示。选择reset为拨码开关SW0;其管脚位置为P11;选择LED0~LED3为LD0~LD3;其管脚位置分别为M5,M11,P6,P7注:如果更换了开发板,管脚约束会发生变化。这时代码可以不用修改,直接在PlanAhead图形化界面中对site做重新定义,具体参考实际板子的管脚分配说明。流水灯---创建约束---图形化界面设置方式(8)其他端口也流水灯---创建约束---图形化界面设置方式(9)保存并退出PlanAhead。(10)回到ISE界面,点选Sourcees窗口内的led.ucf,点击processess窗口里的userconstraints,双击editconstraints(txt),可以看到之前所做的约束都自动保存在UCF文件中。流水灯---创建约束---图形化界面设置方式(9)保存并退出流水灯---创建约束---直接编辑UCF文件方式(2)一直点击next,最后按finish(3)选择sourceforImplementation选项(1)选择ProjectNewSource.设定输入的文件格式为ImplementationConstraintsFile,文件名称为led(自动储存为led.UCF)流水灯---创建约束---直接编辑UCF文件方式(2)一直点流水灯---创建约束---直接编辑UCF文件方式(4)点选Sourcees窗口内的led.ucf,点击processess窗口里的userconstraints,双击editconstraints(txt),直接在编辑窗口输入所需的约束后保存文件。其中,“LOC”代表管脚定义,相关管脚定义请参考使用手册;“IOSTANDARD”代表电平标准,默认是LVCMOS25;“SLEW”代表信号的翻转速率,有fast和slow之分,默认是slow,时钟信号clk变化比较快可设定为fast。NET"clk"LOC=B8;NET"led_out[0]"LOC=M5;NET"led_out[1]"LOC=M11;NET"led_out[2]"LOC=P7;NET"led_out[3]"LOC=P6;NET"reset"LOC=P11;NET"clk"IOSTANDARD=LVCMOS33;NET"led_out[0]"IOSTANDARD=LVCMOS33;NET"led_out[1]"IOSTANDARD=LVCMOS33;NET"led_out[2]"IOSTANDARD=LVCMOS33;NET"led_out[3]"IOSTANDARD=LVCMOS33;NET"reset"IOSTANDARD=LVCMOS33;NET"clk"SLEW=FAST;流水灯---创建约束---直接编辑UCF文件方式(4)点选S流水灯---执行设计并生成下载的bit

约束创建完成之后,可执行设计并生成下载的bit文件。注意:在执行设计并生成下载的bit文件之前,需将之前我们仿真时修改的代码给还原,将代码led.v的第37行不使能,第38行使能,然后保存。---修改了led.v文件后,须重新综合,再执行设计!

执行设计并生成下载的bit文件,可直接双击GenerateProgrammingFile,确认设计无误(即确认所有步骤后均出现绿色的打勾,表示无错或至少没有步骤出现红色打叉[X]的符号,表示没有不可容忍的错误)。流水灯---执行设计并生成下载的bit约束创建完成之流水灯---下载设计到实验板(1)确认执行设计无误并成功生成bit文件后,就可以将led.bit写入到FPGA内部,此时连接板子的USB下载线,并打开电源。点开“ConfigureTargetDevice-ManageConfigurationProject(Impact)”流水灯---下载设计到实验板(1)确认执行设计无误并成功生流水灯---下载设计到实验板(2)双击打开iMPACT软件(3)双击“BoundaryScan”,右边变成空白,此时点击右键选择“InitializeChain”流水灯---下载设计到实验板(2)双击打开iMPACT软件流水灯---下载设计到实验板(4)此时扫描到两个器件,一个是FPGA器件xc3s250e,一个是prom器件xcf02s.(5)点击“Yes”,配置文件,寻找到工程的led.bit文件流水灯---下载设计到实验板(4)此时扫描到两个器件,一个流水灯---下载设计到实验板(6)点击“Open”,弹出是否需要配置SPI或BPIPROM,不需要点击No流水灯---下载设计到实验板(6)点击“Open”,弹出是流水灯---下载设计到实验板(7)接着在弹出窗口点击“Bypass”,并点击OK,然后选择fpga器件,点击右键选择“Program”流水灯---下载设计到实验板(7)接着在弹出窗口点击“By流水灯---下载设计到实验板

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论