传统数字系统设计流程设计目标人工给出真值表人工化简卡诺图得到最简表达式人工使用LSI电路实现系统调试和验证现代数字系统设计流程设计目标设计输入功能级仿真逻辑综合时序仿真系统调试与验证entitylab1isport(a,b,c:instd_logic;y:outstd_logic);endlab1;architecturertloflab1isbeginy=aor(candb);endrtl;综合后仿真转换(Translate)转换(Translate)映射(Map)适配(Fit)布局和布线(PAR)设计下载CPLD设计FPGA设计实现CLBCLBCLBCLB配置文件加载后,用示波器、逻辑分析仪、软件程序观察计算机自动完成时序收敛ISE13.1集成开发环境介绍--主界面介绍源文件窗口处理子窗口脚本子窗口工作区子窗口基于VHDL语言的ISE设计流程--一个数字系统的设计原理外部50MHz时钟分频器生成电路1Hz时钟3位的计数器送给三个灯显示计数的值基于VHDL语言的ISE设计流程--设计内容使用ISE13.1完成一个数字系统的设计,其内容包括:工程的建立;三位计数器的设计;设计综合和查看综合结果;三位计数器设计仿真;分频器的设计;用户约束的添加和设计实现;布局布线结果的查看;设计下载到FPGA芯片PROM文件的生成和下载到PROM中基于VHDL语言的ISE设计流程--启动ISE13.1软件点击此处方法1:在开始菜单下找到ISE的启动图标方法2:在桌面上找到ISE图标,点击该图标启动ISE13.1软件基于VHDL语言的ISE设计流程--新建工程点击NewProject…基于VHDL语言的ISE设计流程--新建工程输入工程名字:counter工程所在的目录点击“Next”按纽基于VHDL语言的ISE设计流程--新建工程产品范围(productcategory)芯片的系列(Family)具体的芯片型号(Device)封装类型(Package)速度信息(speed)综合工具(SynthesisTool)仿真工具(Simulator)喜欢的语言(VHDL/Verilog)点击“Next”按钮基于VHDL语言的ISE设计流程--创建一个新工程点击“Finish”按钮基于VHDL语言的ISE设计流程--创建一个新工程工程名器件名字生成了空的工程框架基于VHDL语言的ISE设计流程--创建一个新的设计文件选中器件名字,点击鼠标右键选中NewSource…基于VHDL语言的ISE设计流程--创建一个新的设计文件块存储器映像文件在线逻辑分析仪Chipscope定义和连接文件实现约束文件IP生成向导存储器文件原理图文件用户文档文件Verilog模块模板文件Verilog测试平台模板文件VHDL模块模板文件VHDL库模板文件VHDL包模板文件VHDL测试平台模板文件片上系统设计向导基于VHDL语言的ISE设计流程--创建一个新的设计文件选择VHDLModule输入”top”作为VHDL模块的名字点击“Next”按钮基于VHDL语言的ISE设计流程--创建一个新的设计文件点击“Next”按钮基于VHDL语言的ISE设计流程--创建一个新的设计文件点击“Next”按钮设计总结基于VHDL语言的ISE设计流程--创建一个新的设计文件生成的top.vhd文件添加代码到top.vhd文件中基于VHDL语言的ISE设计流程--创建一个新的设计文件此处添加两条库调用语句基于VHDL语言的ISE设计流程--创建一个新的设计文件此处添加端口声明语句基于VHDL语言的ISE设计流程--创建一个新的设计文件此处添加一行内部信号量声明语句3位8进制计数器模块添加信号连接下一步对该模块进行综合基于VHDL语言的ISE设计流程--对该设计文件进行综合行为级综合可以自动将系统直接从行为级描述综合为寄存器传输级描述。行为级综合的输入为系统的行为级描述,输出为寄存器传输级描述的数据通路。行为级综合工具可以让设计者从更加接近系统概念模型的角度来设计系统。同时,行为级综合工具能让设计者对于最终设计电路的面积、性能、功耗以及可测性进行很方便地优化。行为级综合所需要完成的任务从广义上来说可以分为分配、调度以及绑定。基于VHDL语言的ISE设计流程--对该设计文件进行综合在ISE的主界面的处理子窗口的synthesis的工具可以完成下面的任务:•查看RTL原理图(ViewRTLschematic)•查看技术原理图(ViewTechnologySchematic)•检查语法(CheckSyntax)•产生综合后仿真模型(GeneratePost-SynthesisSimulationModel)。选中该选项并将其展开基于VHDL语言的ISE设计流程--对该设计文件进行综合选中top.vhd文件鼠标双击该项控制台界面中给出综合过程的信息基于VHDL语言的ISE设计流程--对该设计文件进行综合综合工具在对设计的综合过程中,主要执行以下三个步骤:•语法检查过程,检查设计文件语法是否有错误;•编译过程,翻译和优化HDL代码,将其转换为综合工具可以识别的元件序列;•映射过程,将这些可识别的元件序列转换为可识别的目标技术的基本元件;基于VHDL语言的ISE设计流程--查看综合后的结果通过查看综合后的结果,就会清楚地理解到底什么是综合?综合的本质特征。选中top.vhd文件选中ViewTechnologySchematic选项,并双击该选项基于VHDL语言的ISE设计流程--查看综合后的结果打开顶层模块的原理图点击“OK”按钮基于VHDL语言的ISE设计流程--查看综合后的结果顶层模块图,端口鼠标双击该区域,打开底层设计。基于VHDL语言的ISE设计流程--查看综合后的结果LUT查找表D触发器输入缓冲区输出缓冲区时钟缓冲区基于VHDL语言的ISE设计流程--揭开LUT的秘密•000•001•010•011•100•101•110•111双击打开LUT2双击打开LUT3终于明白了FPGA的LUT是怎么实现逻辑功能的基于VHDL语言的ISE设计流程--对该设计进行行为仿真选中Simulation选项选中top.vhd,点击鼠标右键选中NewSource…基于VHDL语言的ISE设计流程--对该设计进行行为仿真选择VHDLModule输入”test”作为VHDL测试模块的名字点击“Next”按钮基于VHDL语言的ISE设计流程--对该设计进行行为仿真点击“Next”按钮基于VHDL语言的ISE设计流程--对该设计进行行为仿真点击“Finish”按钮基于VHDL语言的ISE设计流程--对该设计进行行为仿真刚才的设计文件生成的测试平台test.vhd模板文件基于VHDL语言的ISE设计流程--对该设计进行行为仿真删除此段代码基于VHDL语言的ISE设计流程--对该设计进行行为仿真添加此段代码用于生成rst测试信号基于VHDL语言的ISE设计流程--对该设计进行行为仿真添加此段代码用于生成clk测试信号基于VHDL语言的ISE设计流程--对该设计进行行为仿真展开ISimSimulator双击SimulateBehavioralModel基于VHDL语言的ISE设计流程--对该设计进行行为仿真点击“按钮”,直到出现窗口波形仿真波形窗口基于VHDL语言的ISE设计流程--对该设计进行行为仿真可以在控制台窗口,输入命令控制仿真的运行输入run1ms,控制仿真运行时间到1ms关闭整个仿真窗口,继续下面的设计,为了将来在硬件上看到灯的变化所反映的计数器的工作状态,需要在top.vhd设计文件,添加分频时钟部分代码,基于VHDL语言的ISE设计流程--对该设计继续添加代码选中Implementation选中top.vhd,并点击打开该文件,准备添加代码基于VHDL语言的ISE设计流程--对该设计继续添加代码添加内部信号量声明部分添加分频计数器代码部分添加分频时钟映射部分基于VHDL语言的ISE设计流程--对该设计继续添加代码将原来的clk改成div_clk基于VHDL语言的ISE设计流程--添加实现约束文件选中Implementation选项选中top.vhd,点击鼠标右键选中NewSource…基于VHDL语言的ISE设计流程--添加实现约束文件选择实现约束文件输入”top”作为实现约束文件的名字点击“Next”按钮基于VHDL语言的ISE设计流程--添加实现约束文件点击“Finish”按钮基于VHDL语言的ISE设计流程--添加实现约束文件实现约束文件top.ucf已经添加到设计中选择top.vhd选择UserConstraints,并展开该选项双击I/OPinPlaning(PlanAhead)-Post-Synthesis基于VHDL语言的ISE设计流程--添加实现约束文件点击“Close”按钮基于VHDL语言的ISE设计流程--添加实现约束文件基于VHDL语言的ISE设计流程--添加实现约束文件输入对应的FPGA的引脚选择对应引脚的电平LVCMOS33保存引脚约束,并退出该界面基于VHDL语言的ISE设计流程--实现设计选择top.vhd选择ImplementDesign,并用鼠标双击该选项基于VHDL语言的ISE设计流程--实现设计选择ImplementDesign,并展开第一步:转换“Translate”翻译的主要作用是将综合输出的逻辑网表翻译为Xilinx特定器件的底层结构和硬件原语。第二步:映射“Map”映射的主要作用是将设计映射到具体型号的器件上。第三步:布局和布线”Place&Route”布局布线的主要作用是调用Xilinx布局布线器,根据用户约束和物理约束,对设计模块进行实际的布局,并根据设计连接,对布局后的模块进行布线,产生PLD配置文件。选择top.vhd基于VHDL语言的ISE设计流程--查看布局布线后结果选择Place&Route,并展开选择View/EditRoutedDesign(FPGAEditor)基于VHDL语言的ISE设计流程--查看布局布线后结果FPGA硅片布局选择放大按钮,查看硅片细节基于VHDL语言的ISE设计流程--查看布局布线后结果CLBSlice连线双击,展开Slice基于VHDL语言的ISE设计流程--查看布局布线后结果关闭FPGAEditor界面基于VHDL语言的ISE设计流程--下载设计到FPGA芯片准备工作:•将HEP的USB-JTAG电缆分别和计算机USB接口及EXCD-1目标板上的JTAG7针插口连接;•计算机自动安装JTAG驱动程序;•给EXCD-1目标板上电;基于VHDL语言的ISE设计流程--下载设计到FPGA芯片选择top.vhd选择ConfigureTargetDevice,并展开选择ManageConfigurationProject(iMPACT),并双击.基于VHDL语言的ISE设计流程--下载设计到FPGA芯片选择BoundaryScan,(边界扫描)鼠标右击该区域,出现选择InitializeChain(初始化链)基于VHDL语言的ISE设计流程--下载设计到FPGA芯片Xcf04s-Xilinx的串行Flash芯片xc3s500e-Xilinx的FPGA芯片两个芯片连接在JTAG链路上点击“Yes”按钮基于VHDL语言的ISE设计流程--下载设计到FPGA芯片先不烧写设计到PROM芯片中,所以选择”Cancel”按钮基于VHDL语言的ISE设计流程--下载设计到FPGA芯片找到设计工程所在的目录找到要下载的比特流文件top.bit点击打开按钮基于VHDL语言的ISE设计流程--下载设计到FPGA芯片Spartan-3E支持商用的并行Flash,此处不需要使用它,所以选择“No”按钮基于VHDL语言的ISE设计流程--下载设计到FPGA芯片下载属性设置,此处选择默认设置,然后点击“OK”按纽基于VHDL语言的ISE设计流程--下载设计到FPGA芯片xc3s500e,已经分配了下载文件top.bit鼠标右健点击芯