《eda教学7.ppt》由会员分享,可在线阅读,更多相关《eda教学7.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、何宾何宾2008.09 VHDL语言的出现使得许多PLD设计都是基于VHDL的设计流程,但是基于原理图的设计也有着重要应用。例如,对于一个简单数字系统设计而言,顶层文件使用原理图设计,这样做设计比较直观,容易理解,要比使用HDL例化语句描述简单。该章还是通过秒表的设计示例介绍基于原理图的设计流程。在这里需要说明的是,一个有经验的EDA设计人员,会使用基于HDL语言、原理图和IP核的混合设计方法完成设计,这些设计方法可能使用在设计的各个模块中,而不会只局限在顶层模块中。基于原理图的设计输入基于原理图的设计输入-主要内容主要内容第第7章章第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计
2、输入-工程建立工程建立 在建立工程前,需要将示例文件从光盘上拷到创建工程的路径下。该设计完成一个比赛用的秒表计时器。(设计文件通过http:/ ls/tutorials9.htm资源下载)。下面给出基于原理图设流程的工程建立步骤:1、在桌面上双击ISE9.2的图标,或者在开始菜单-所有程序-XilinxISE9.1-Project Navigator。在ISE主界面中选择File-New Project。如图7.1所示,桌面出现下面的界面;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-工程建立工程建立图图7.1 创建新工程的界面创建新工程的界面第七章第七章第七章第七章基于原
3、理图的设计输入基于原理图的设计输入-工程建立工程建立 2、在Project Location域内,由设计人员给出保存工程的路径;3、在Project name域内,由设计人员给出工程名wtut_sc;4、在Top-Level Source Type域内,选择原理图Schematic,单 击下一步;如图7.2所示,桌面出现下面的界面;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-工程建立工程建立图图7.2 芯片属性界面芯片属性界面第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-工程建立工程建立 5、在Device Properties界面中,选择合适的产品范
4、围(Product Category)、芯片的系列(Family)、具体的芯 片型号(Device)、封装类型(Package)、速度信息(Speed),此外,在该界面中还要选择综合工具(Synthesis Tool)、仿真工具(Simulator)和设计语言(Preferred Language)。图7.2给出了示例中的参数配置;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-工程建立工程建立 图图7.3 添加源的界面添加源的界面第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-工程建立工程建立 6、连续两次用鼠标点击下一步按钮,出现图7.3添加源文件的界面
5、。在该界面中,点击“Add Source”按钮。添加下列文件:cd4rled.sch,ch4rled.sch,clk_div_262k.vhd,lcd_control.vhd,stopwatch.sch和statmach.dia文件,并单击open按钮,单击下一步按钮,然后完成新工程的建立;7、在确认所有设计文件和Synthesis/Imp+Simulation选项关联后,单击ok;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-设计描述设计描述 在该设计中,采用了层次化的、基于原理图的设计方法。该设计的顶层文件是由原理图生成,而顶层文件下面的其它模块可以用VHDL语言、原理
6、图或IP核生成。该设计就是完成一个还未完成的工程。通过这个设计流程,读者可以完成和产生其它的模块。当设计完成后,可以通过仿真验证设计的正确性。图7.4给出了该设计完整的顶层原理图描述。该例子的输入、输出信号和功能模块与前一章的例子完全一样。第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-设计描述设计描述图图7.4 完整的顶层原理图的界面完整的顶层原理图的界面第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-设计描述设计描述 在这个基于分层的设计中,读者可以建立各种类型的模块,其中包括基于原理图输入模块、基于HDL输入模块、基于状态图输入模块和基于IP核输入模块
7、。通过该示例,EDA设计人员可以详细学习建立每一种模块的方法,并且学习如何将这些模块连接在一起构成一个完整的设计。第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-原理图编辑器操作原理图编辑器操作 原理图模块由模块符号和符号的连接组成。下面的步骤将通过ISE的原理图编辑器(Schematic Editor)介绍建立基于原理图设计time_cnt模块的过程:1、在ISE主界面下,选择Project-New Source,出现图7.5的New Source对话框界面。在该界面左边选择Schematic选项,在File Name中输入time_cnt,单击next按钮,然后单击Fin
8、ish按钮,建立新原理图模块;2、在ISE工作区子窗口,出现原理图编辑窗口,点击鼠标右键,然后选择Object Properties,将图纸尺寸(Size)改成D=34x22。点击ok按钮;通过上面步骤,建立一个time_cnt原理图输入界面;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加添加I/O符号符号 I/O符号用来确定模块的输入/输出端口,通过下面的步骤可以创建模块的I/O符号:1、在原理图编辑器界面内,选择ToolsCreate I/O markers.,显示创建I/O marker对话框;2、如图7.5所示,在Inputs下输入q(19:0),load,up
9、,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.5 I/O marker建立界面建立界面第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加原理图元件添加原理图元件 通过符号浏览器(Symbol Brower)可以看到对于当前设计所用芯片可以使用的元件名字和符号(这些符号按字母顺序排列)。这些元件符号可以用鼠标直接拖到原理图编辑器中。下面给出添
10、加原理图元件的步骤:1、在原理图编辑器的界面内,选择Add-Symbol或者在工具栏中点击Add Symbol图标。如图7.6所示,在原理图编辑器窗口左边,打开符号浏览器(Symbol Brower)。在设计路径下,选择cd4rled,该元件是4比特双向可加载的BCD计数器;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加原理图元件添加原理图元件 2、选择cd4rled元件,用鼠标将其拖入编辑器窗口内。如图7.7所示,再添加3个这样的元件到编辑界面中,同时添加AND2b1,ch4rled和AND5元件到编辑器窗口内;图图7.6 元件符号浏览器界面元件符号浏览器界面第七章第
11、七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加连线添加连线 1、在元件编辑器界面内,选择Addwire或者在工具栏中点击Add wire图标;2、点击AND2B1的输出,拖动连线到cd4rled元件的CE引脚。此时在两个引脚之间建立连线;3、点击AND5元件输出,拖动连线到AND2b1反向输入引脚。此时在两个引脚之间建立连线;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加连线添加连线图图7.7 元件编辑窗口界面元件编辑窗口界面第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加连线添加连线 4、分别将load,up,clk和clr输入和
12、五个计数器模块的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或者在工具栏中点击Add wire图标,从这些端口拖出总线连接线,按图7.8所
13、示,引出这些总线的连接线;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加总线符号添加总线符号图7.8 完整的总线连接界面第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加总线符号添加总线符号 3、当添加操作结束时,按ESC键放弃总线连接操作;4、下面将要把比特端口和总线连接,选择AddBus Tap或者在工具栏中点击Add BusTap图标。5、从原理图编辑器左边的Option标签中选择-wire或者在工具栏中点击Add wire图标,分别从5个计数器的Q0Q3分别引出四个连接线,注意不要和Bus Tap连接。第七章第七章第七章第七章基于原理图的设计
14、输入基于原理图的设计输入-添加总线符号添加总线符号 8、在工具条中,选择Add Net Name图标,在原理图编辑器的Option标签内,选择Name the branchs net选项,并输入需要连接的比特端口名字,形式为:总线名字(索引号),然后将光标移动到相对应比特端口的连接线上,此时名字就添加在连线上。9、完成上述总线命名后,将这些比特端口连接线和Bus Tap标记连接。经过上面的步骤后完成比特端口和总线的连接。10、按照上面几节的描述步骤,完成所有输入和输出端口和元件的连接,最后选择tools-Check Schematic,对设计的原理图进行检查,修改错误,当没有错误后,将该原理图
15、保存。第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-创建模块符号 当设计完成后,下面创建该原理图的RTL符号描述。这个RTL符号是该原理图的例化描述。当创建完RTL符号后,就可以将该符号添加到顶层的原理图设计文件中。下面给出创建模块符号的步骤:1、在工程管理窗口(Source window),选择time_cnt.sch文件;2、在处理窗口(Process window),选择+Design Utilties并将其展开,下面工具将以分层列表的方式显示。3、双击Create Schematic Symbol选项。通过以上步骤,产生该模块的RTL符号描述。第七章第七章第七章第七
16、章基于原理图的设计输入基于原理图的设计输入-创建状态图模块 使用状态图编辑器(state diagram editor),可以通过状态图编辑器建立有限自动状态机(FSM),该状态机中包括状态,输入/输出和状态的迁移条件。状态图编辑器以VHDL、Verilog和ABEL的形式输出设计文件。作为结果的HDL代码被综合建立网表文件,同时创建RTL的符号描述用于顶层原理图的调用。在该部分将一个尚未完成的状态图设计完成。如图7.9所示,使用前面的方法,通过状态图编辑器打开statmach.dia文件。第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-创建状态图模块 该文件中的圆圈代表不同
17、的状态;黑色描述的表达式是状态迁移的条件;输出表达式。这些表达式的书写有规定的语法,最终以VHDL、Verilog和ABEL语言输出描述。图7.9 未完成的状态图第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加状态 通过下面的步骤,将一个clear状态添加到状态机中:1、在状态图编辑器的界面中,单击图标;2、如图7.10所示,将光标移到图的左边,点击鼠标将其放在给定的位置;3、单击该图标,将状态名字改为clear,选择ok;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加状态图7.10 添加clear状态第七章第七章第七章第七章基于原理图的设计输入基
18、于原理图的设计输入-添加迁移 状态迁移定义了状态机之间的状态变化。状态图中的状态变化用箭头描述。该状态的迁移是无条件的,因此不需要迁移的条件。通过下面的步骤,在clear和zero状态之间添加迁移:1、在状态图编辑器的界面中,单击图标;2、单击clear状态图标,然后再单击zero状态图标。可以看到在两个状态之间产生了由clear指向zero的箭头;3、在状态图编辑器的界面中,单击图标,放弃继续添加迁移;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加迁移图7.11 添加迁移第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加行为 状态行为描述的是在该状
19、态下的输出的情况,通过下面的步骤将在clear状态中,驱动RST的输出为1:1、双击clear状态,弹出图7.12的状态对话框。在输出的对话框中输入rst=1的条件,当然也可以通过output Wizard生成。第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加行为 2、如果通过output Wizard的工具,在Logic Wizard中输入下面的值dout=rst,constant=1。图7.12 状态对话框第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加复位条件 使用状态复位的特征,为状态机指定复位条件。状态机初始化这个特定的状态,并且当复位条件
20、满足时,进入到下一个给定的状态。当RST或者DCM的lock信号满足条件时,状态机将进入到clear状态。下面的步骤将添加rst信号到状态机中:1、在状态图编辑器的界面中,单击图标;2、在clear状态单击鼠标,然后移动到clear状态的圆圈上,单击鼠标,如图7.13所示,这时产生一个状态复位的信号指示箭头;第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加复位条件图7.13 添加复位条件第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-添加复位条件 3、此时有一个提示出现,“should this reset be asynchronous(yes)or
21、synchronous(no)?”,回答”yes”;通过上面的步骤,完成了复位条件的添加。第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-设计输出和添加 第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-设计输出和添加关闭状态图编辑工具。在ISE主界面中,添加设计文件,打开statmach.vhd文件。在Source标签下,选择statmach.vhd文件。在处理标签下,单击+Design Utilities选项。双击Create Schematic Symbol图标,产生该设计的RTL符号,该符号在最后将由顶层文件调用。第七章第七章第七章第七章基于原理图的设计输入基于原理图的设计输入-设计完成 在该设计中,还设计到DCM1模块的建立,ROM模块的建立,Debounce模块的建立,这些模块的建立过程和前面是一样的,在此就不进行详细的说明了。这些模块建立完成后,必须通过Create Schematic Symbol工具生成RTL的符号,这样才能完成顶层原理图的设计。顶层模块的生成过程和前面原理图的建立过程是一样的,只要遵循前面的步骤即可。第七章第七章第七章第七章 1、说明基于原理图的设计输入方法。2、举例说明状态图的设计方法。3、建立一个基于原理图的设计工程。第第7章习章习 题题