您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > EDA原理及VHDL实现-第7章
该电子教案为EDA原理及VHDL一书的配套教学资源版权所有,不得用于其它商业用途基于原理图的设计输入何宾2011.09基于原理图的设计输入-本章概要VHDL语言的出现使得许多PLD设计都是基于VHDL的设计流程,但是基于原理图的设计也有着重要应用。例如,对于一个简单数字系统设计而言,顶层文件使用原理图设计,这样做设计比较直观,容易理解,要比使用HDL例化语句描述简单。该章还是通过秒表的设计示例介绍基于原理图的设计流程。在这里需要说明的是,一个有经验的EDA设计人员,会使用基于HDL语言、原理图和IP核的混合设计方法完成设计,这些设计方法可能使用在设计的各个模块中,而不会只局限在顶层模块中。基于原理图的设计输入-工程建立在建立工程前,需要将示例文件从光盘上拷到创建工程的路径下。该设计完成一个比赛用的秒表计时器。(设计文件通过资源下载)。下面给出基于原理图设计流程的工程建立步骤:1、在桌面上双击ISE11图标,或者在开始菜单-所有程序-XilinxISE11-ProjectNavigator。在ISE主界面中选择File-NewProject。如图7.1所示,桌面出现下面的界面;基于原理图的设计输入-工程建立图7.1创建新工程的界面基于原理图的设计输入-工程建立2、在ProjectLocation域内,由设计人员给出保存工程的路径;3、在Projectname域内,由设计人员给出工程名wtut_sc;4、在Top-LevelSourceType域内,选择原理图Schematic,单击下一步;如图7.2所示,桌面出现下面的界面;基于原理图的设计输入-工程建立基于原理图的设计输入-工程建立5、在DeviceProperties界面中,选择合适的产品范围(ProductCategory)、芯片的系列(Family)、具体的芯片型号(Device)、封装类型(Package)、速度信息(Speed),此外,在该界面中还要选择综合工具(SynthesisTool)、仿真工具(Simulator)和设计语言(PreferredLanguage)。图7.2给出了示例中的参数配置;6、连续两次用鼠标点击下一步按钮,然后在界面“NewProjectWizard-AddExistingSourceWindows”中点击“AddSource”(添加源文件)按钮基于原理图的设计输入-工程建立基于原理图的设计输入-工程建立7.在该界面中,点击“AddSource”按钮。将路径定位到c:\xilinx\11.1\ISE\ISExamples\wtut_sc;选择并添加下列文件:cd4rled.schch4rled.schclk_div_262k.vhdlcd_control.vhdstopwatch.schstatmach.vhd基于原理图的设计输入-工程建立8.点击“Next”按钮,然后单击“Finish按钮,这样完成新工程的建立;9、如下图所示,确认所有设计文件的Association选项为“ALL”,Library选项为“work”。基于原理图的设计输入-工程建立基于原理图的设计输入-设计描述在该设计中,采用了层次化的、基于原理图的设计方法。该设计的顶层文件是由原理图生成,而顶层文件下面的其它模块可以用VHDL语言、原理图或IP核生成。该设计就是完成一个还未完成的工程。通过这个设计流程,读者可以完成和产生其它的模块。当设计完成后,可以通过仿真验证设计的正确性。图7.4给出了该设计完整的顶层原理图描述。该例子的输入、输出信号和功能模块与前一章的例子完全一样。基于原理图的设计输入-设计描述图7.4完整的顶层原理图的界面基于原理图的设计输入-设计描述在这个基于分层的设计中,读者可以建立各种类型的模块,其中包括基于原理图输入模块、基于HDL输入模块、基于状态图输入模块和基于IP核输入模块。通过该示例,EDA设计人员可以详细学习建立每一种模块的方法,并且学习如何将这些模块连接在一起构成一个完整的设计。基于原理图的设计输入-原理图编辑器操作原理图模块由模块符号和符号的连接组成。下面的步骤将通过ISE的原理图编辑器(SchematicEditor)介绍建立基于原理图设计time_cnt模块的过程:1、在ISE主界面下,选择Project-NewSource,出现图7.5的NewSource对话框界面。在该界面左边选择Schematic选项,在FileName中输入time_cnt,单击next按钮,然后单击Finish按钮,建立新原理图模块;2、在ISE工作区子窗口,出现原理图编辑窗口,点击鼠标右键,然后选择ObjectProperties,将图纸尺寸(Size)改成D=34x22。点击ok按钮;通过上面步骤,建立一个time_cnt原理图输入界面;基于原理图的设计输入-原理图编辑器操作基于原理图的设计输入-添加I/O符号I/O符号用来确定模块的输入/输出端口,通过下面的步骤可以创建模块的I/O符号:1、在原理图编辑器界面内,选择ToolsCreateI/Omarkers.,显示创建I/Omarker对话框;2、如图7.5所示,在Inputs下输入q(19:0),load,up,ce,clk,clr,在output下输入hundredths(3:0),tenths(3:0),sec_lsb(3:0),sec_msb(3:0),minutes(3:0),点击OK;基于原理图的设计输入-添加I/O符号图7.5I/Omarker建立界面基于原理图的设计输入-添加原理图元件通过符号浏览器(SymbolBrower)可以看到对于当前设计所用芯片可以使用的元件名字和符号(这些符号按字母顺序排列)。这些元件符号可以用鼠标直接拖到原理图编辑器中。下面给出添加原理图元件的步骤:1、在原理图编辑器的界面内,选择Add-Symbol或者在工具栏中点击AddSymbol图标。如图7.6所示,在原理图编辑器窗口左边,打开符号浏览器(SymbolBrower)。在设计路径下,选择cd4rled,该元件是4比特双向可加载的BCD计数器;基于原理图的设计输入-添加原理图元件2、选择cd4rled元件,用鼠标将其拖入编辑器窗口内。如图7.7所示,再添加3个这样的元件到编辑界面中,同时添加AND2b1,ch4rled和AND5元件到编辑器窗口内;图7.7原理图的元件放置基于原理图的设计输入-添加连线1、在元件编辑器界面内,选择Addwire或者在工具栏中点击Addwire图标;2、点击AND2B1的输出,拖动连线到cd4rled元件的CE引脚。此时在两个引脚之间建立连线;3、点击AND5元件输出,拖动连线到AND2b1反向输入引脚。此时在两个引脚之间建立连线;基于原理图的设计输入-添加连线图7.7元件编辑窗口界面基于原理图的设计输入-添加连线4、分别将load,up,clk和clr输入和五个计数器模块的L,UP,C,R引脚连接,将前一个计数器CE0和下一个计数器CE连接;通过以上4个步骤就可以完成元件之间的线连接,下面将介绍通过总线连接元件的方法。基于原理图的设计输入-添加总线符号添加总线包括添加总线符号和与总线连接的比特位的连接。下面给出建立总线hundredths(3:0),tenths(3:0),sec_lsb(3:0),sec_msb(3:0)和minutes(3:0)连接的步骤:1、分别选择上面的总线输出符号;2、选择Addwire或者在工具栏中点击Addwire图标,从这些端口拖出总线连接线,按图7.8所示,引出这些总线的连接线;基于原理图的设计输入-添加总线符号图7.8完整的总线连接界面基于原理图的设计输入-添加总线符号3、当添加操作结束时,按ESC键放弃总线连接操作;4、下面将要把比特端口和总线连接,选择AddBusTap或者在工具栏中点击AddBusTap图标。5、从原理图编辑器左边的Option标签中选择--Right选项,这样做是为了将元件和总线很好的连接。6、单击hundreths(3:0),将busTap标记放在总线上,下面要进行selectedbusname和Netname的操作。将五个计数器对应的BusTap标记分别放在总线相应的位置上。如图7.8所示,需要在5条总线上放4个BusTap标记。7、选择Addwire或者在工具栏中点击Addwire图标,分别从5个计数器的Q0~Q3分别引出四个连接线,注意不要和BusTap连接。基于原理图的设计输入-添加总线符号8、在工具条中,选择AddNetName图标,在原理图编辑器的Option标签内,选择Namethebranch’snet选项,并输入需要连接的比特端口名字,形式为:总线名字(索引号),然后将光标移动到相对应比特端口的连接线上,此时名字就添加在连线上。9、完成上述总线命名后,将这些比特端口连接线和BusTap标记连接。经过上面的步骤后完成比特端口和总线的连接。10、按照上面几节的描述步骤,完成所有输入和输出端口和元件的连接,最后选择tools-CheckSchematic,对设计的原理图进行检查,修改错误,当没有错误后,将该原理图保存。创建模块及相关模块原理图--创建time_cnt模块原理图当设计完成后,下面创建该原理图的RTL符号描述。这个RTL符号是该原理图的例化描述。当创建完RTL原理图后,就可以将该符号添加到顶层的原理图设计文件中。下面给出创建time_cnt.sch原理图的步骤:1)在工程管理窗口(Sourcewindow),选择time_cnt.sch文件;2)在处理窗口(Processwindow),选择+DesignUtilties并将其展开,下面工具将以分层列表的方式显示。3)双击CreateSchematicSymbol选项。创建模块及相关模块原理图--创建核生成器模块及原理图按照第6章使用核生成器(CoreGenerator)生成timer_preset模块的步骤生成该模块。按照第6章使用核生成器(CoreGenerator)生成dcm1模块的步骤生成该模块。下面给出生成dcm1模块原理图的步骤:1)在工程管理窗口的Source标签下,选择dcm1.xaw;2)在process(处理)窗口下,双击“CreateSchematicSymbl”按钮来生成dcm1的原理图。创建模块及相关模块原理图--创建基于HDL模块及原理图按照第六章的步骤创建debounce.vhd模块。下面给出创建该模块原理符号的步骤:1)在工程管理窗口(Sourcewindow),选择debounce.vhd文件;2)在处理窗口(Processwindow),选择+DesignUtilties并将其展开,下面工具将以分层列表的方式显示。3)双击CreateSchematicSymbol选项。重复上面的过程生成statemach.vhd模块的原理图;顶层模块原理图的设计-放置模块到原理图现在将statmath,timer_preset,dcm1和debounce符号放到stopwatch.sch原理图界面中,双击stopwatch.sch打开原理图编辑器界面,下面给出放置这些符号到原理图界面的步骤:1)选择Add-Symbol或者从工具栏中点击“AddSymbol”图标。这将打开原理图编辑器的符号浏览器(SymbolBrowser),该浏览器显示了库和这些库中的相关的元件;2)在符号浏览器中,查看可使用的库元件;3)在Categories窗口,通过选择工程目录来找到具体工程中的宏符号;顶层模块原理图的设计-放置模块到原理图4)如图7.9所示,选择合适的原理图,添加到stopwatch原理图中合适的位置。5)保存原理图。顶层模块原理图的设计-修改例化名字当在原理图中放置符号后,每个符号有一个唯一的名字,名字以“XLXI_”开始。为了使这
本文标题:EDA原理及VHDL实现-第7章
链接地址:https://www.777doc.com/doc-2910964 .html