ActiveHDL进阶

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

设计中心1电子设计自动化技术授课教师:王忆文设计中心2电子设计自动化技术Active-HDL进阶设计中心3Active-HDLFPGAExpress/ISEISE设计中心4Active-HDLDesignEntryTools•HDLEditor(HDE)•BlockDiagramEditor(BDE)•StateDiagramEditor(FSM)设计中心5设计中心6TrainingIntroduction一个简单频率计的设计(带BCD计数器、LED数码管显示编码)频率计的基本原理:将输入信号频率与基准时钟频率进行比较频率计的测量使能:即测量状态下START信号为‘1’该设计采用3三种描述模式:HDL编辑器(HDE)框图编辑器(BDE)状态图编辑器(FSM)设计中心7简单频率计框图设计中心8频率计主要模块•Thefollowingblocksareusedinthedesign:–Top_frqm--顶层设计(BDE)•HEX2LED--LED数码管显示编码模块(HDE)•CNT_BCD--4位十进制BCD计数器模块(BDE)(包含AND2和CNT_4b俩子模块)•CONTROL--频率计控制模块(FSM)设计中心9创建Project(NewDesign)•IntheTypethedesignnamefield,enterFRQ_METER设计中心10设计环境调整在DesignBrowser点鼠标右键选择NewFolder选项可以创建自己的文件夹新文件夹省却名为“Folder1”、“Folder2”等,可以自行改名比如,我们可以创建名为FUNCTIONAL的文件夹,以便归档我们接下来的设计设计中心11Top_frqm--顶层设计(BDE)1.HEX2LED--LED数码管显示编码模块(HDE)2.CNT_BCD--4位十进制BCD计数器(BDE)(包含AND2和CNT_4b俩子模块)3.CONTROL--频率计控制模块(FSM)设计内容设计中心12设计中心131.2创建HEX2LED显示模块•HEX2LEDarchitecture:用LanguageAssistant功能•调取LanguageAssistant窗口:Tools|LanguageAssistant•选择Synthesistemplates/HEX2LEDConverter,用Use选项将代码放入architecture的begin与end之间.Note:Thecodeisinsertedwherethecursorislocatedinyourfile.Checkthisbeforeyouinvoketheusecommand.设计中心14设计中心151.3创建HEX2LED显示模块•SavetheHEX2LED.VHDfile(Ctrl+S)•鼠标选中HEX2LED.VHD拖进FUNCTIONAL文件夹•打开在FUNCTIONAL文件夹中的HEX2LED.VHD,编译(F11)设计中心16Top_frqm--顶层设计(BDE)1.HEX2LED--LED数码管显示编码模块(HDE)2.CNT_BCD--4位十进制BCD计数器(BDE)包含两个底层子模块①CNT_4b(HDE)②AND2(HDE)3.CONTROL--频率计控制模块(FSM)设计内容设计中心172.CNT_BCD计数器模块描述CNT_BCD是一个同步BCD计数器。–CLK–系统时钟–GATE–计数器使能端–RESET–非同步RESET–BCD_A,BCD_B,BCD_C,BCD_D设计中心182.1CNT_4b子模块描述(HDE)architectureCNT_4BofCNT_4BissignalQint:STD_LOGIC_VECTOR(3downto0);beginprocess(CLK,RESET)beginifRESET='1'thenQint=(others='0');elsifCLK='1'andCLK'eventthenifENABLE='1'thenifQint=9thenQint=(others='0');elseQint=Qint+1;endif;endif;endif;endprocess;Q=Qint;FULL='1'when(Qint=9)else'0';endCNT_4B;设计中心192.2创建与门AND2子元件(HDE)•利用NewSourceFileWizard创建与门AND2元件(VHDLfile)。它有两输入A0、A1和一输出Y•在AND2.VHD输入一行代码(betweenbeginandendAND2inthearchitecturebody):Y=A0andA1;•Savethefile,closeit,dragittotheFunctionalfolder,thencompileit.设计中心202.3-1创建CNT_BCD模块(BDE)•File|New|BlockDiagram•选择BlockDiagramWizard•Next•在NewSourceFileWizard-Language窗口选择VHDL•Next•NewSourceFileWizard–Name窗口输入CNT_BCD•NextBDE的操作步骤:设计中心21BDE•EDIF(ElectronicDataInterchangeFormat)设计中心22创建CNT_BCD模块(续)(BDE)•Addtheindirectionports(STD_LOGIC):–CLK–GATE–RESET•Addtheoutdirectionports:(STD_LOGIC_VECTOR):–BCD_A[3:0]–BCD_B[3:0]–BCD_C[3:0]–BCD_D[3:0]设计中心23设计中心242.3-2创建CNT_BCD模块(添加元件)•进入添加元件状态,用鼠标左键点中cnt_4bsymbol从工具箱中拖入框图区域四次;此后框图区域如下所示:•将and2symbol从Symbol工具箱中拖入框图区域三次。NOTE:进入添加元件状态的方法是,在框图编辑器工具条点击ShowSymbolToolbox按钮,即可添加上面的元件。设计中心252.3-3创建CNT_BCD模块•用同样的方法添加3个and2symbol,然后即可关闭右侧theSymbolToolbox对应子窗口,接下来就是画元件间的互连线了。设计中心262.3-4创建CNT_BCD模块•Wire按钮()画一位互连线(and2与cnt_4b间互连线),Bus按钮()画总线bus(计数器输出端口)设计中心272.3-5创建CNT_BCD模块•用GlobalWirebutton()在CLK和RESET输入端口右边化两个黄圈。•分别双击黄圈输入名字CLK和RESET•globalwire定义完成后如下图所示:设计中心28设计中心29Active-HDLDesignEntryTools•HDLEditor(HDE)•BlockDiagramEditor(BDE)•StateDiagramEditor(FSM)设计中心30简单频率计框图设计中心311.HEX2LED-LED七段码显示转换模(HDE)2.CNT_BCD-4位十进制BCD计数器模(BDE)(包含AND2和CNT_4b俩子模块)3.Top_frqm-顶层设计(BDE)4.CONTROL-频率计控制模块(FSM)设计内容设计中心32Top_frqm--顶层设计(带虚拟元件)(BDE)1.HEX2LED--LED数码管显示编码模块(HDE)2.CNT_BCD--4位十进制BCD计数器(BDE)(包含AND2和CNT_4b俩子模块)3.CONTROL--频率计控制模块(FSM)设计内容设计中心333.1创建顶层框图Top_frqm•File|New|BlockDiagram•选择BlockDiagramWizard•Next•在NewSourceFileWizard-Language窗口选择VHDL•Next•在NewSourceFileWizard–Name窗口输入Top_frqm•Next在这一部分我们将实现频率计的顶层框图设计,我们还将采用top-down的设计方法创建FSM模块(Control)。设计中心343.2创建顶层框图Top_frqm•DefinethefollowingportsoftheTop_frqmblockdiagram:InputPorts:-F_INPUT-F_PATTERN-RESET-STARTOutputPorts:-LED_A[6:0]-LED_B[6:0]-LED_C[6:0]-LED_D[6:0]•ClickFinishBlockDiagramEditor(BDE)screenwithanemptydiagramwillappear.设计中心353.3创建顶层框图Top_frqm(虚拟元件)•点击Fubbutton(),在F_PATTERN,RESETandSTART输入端口右边创建一个Fub符号,如下图所示:设计中心363.4创建顶层框图Top_frqm•点击Wirebutton()化三条水平连线,连接F_PATTERN,RESETandSTART端口到U1fub;三个输入pin在Fub中自动创建。•按Esc键回到选择模式。•双击“Fub1”label,更改fubname为CONTROL•右击fubbody,选择Edit进入Fub编辑状态设计中心373.5创建顶层框图Top_frqm•拖动AddNewPin窗口中的Outpin到Fub右边界,创建Pin1;重复操作创建Pin2。•双击Pin1更名为GATE•双击Pin2更名为END_RESET•点击Fub外面,回答Yes保存。设计中心383.6创建顶层框图Top_frqm•完成后的Fub如右图所示(完成顶层设计后,待后续再完善该Fub设计)•接下来完善Top_frqm框图设计:-oneCNT_BCDmodule-fourHEX2LEDmodule(用ShowSymbolToolboxbutton将对应元件拖入框图编辑框)设计中心393.7创建顶层框图Top_frqm•Thediagramwithallsixsymbolsplacedshouldlooklikethis:设计中心403.8创建顶层框图Top_frqm•ThecompletedTop_frqmblockdiagramshouldlooklikethis:•Pleasesavethediagram,closeit,dragittotheFunctionalfolderintheDesignBrowserandreopenit设计中心411.HEX2LED-LED七段码显示转换模(HDE)2.CNT_BCD-4位十进制BCD计数器模(BDE)(包含AND2和CNT_4b俩子模块)3.Top_frqm-顶层设计(BDE)4.CONTROL-频率计控制模块(FSM)设计内容设计中心42Top_frqm--顶层设计(BDE)1.HEX2LED--LED数码管显示编码模块(HDE)2.CNT_BCD--4位十进制BCD计数器(BDE)(包含AND2和CNT_4b俩子模块)3.CONTROL--频率计控制模块(FSM)设计内容设计中心43状态转移图设计中心44FSM(FiniteStateMachine)分类FSM根据输入输出关系可分为两类:摩尔(Moore)型状态机–输出由状态决定,与输入无直接关系米利(Mealy)型状态机–输出由状态和输入共同决定设计中心45摩尔(Moore)型状态机•摩尔(Moore)型状态机的输出仅仅与当前状态相关。状态寄存器状态逻辑输出逻辑输出当前状态次态输入复位信号时钟信号设计中心46摩尔(Moore)型状态图1110000S3/0S0/0S1/1S2/01设计中心47米利(Mealy)型状态机•米利(Mealy)型状态机的输出不仅与当前状态相关,而

1 / 90
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功