1、示例课件目录,1、原理图输入设计方法示例,1、原理图输入设计方法示例,1.1(组合逻辑)1位全加器设计1.2(时序逻辑)2位十进制数字频率计设计1.3参数可设置LPM兆功能块设计1.4波形输入设计方法,2018/3/27,湖北众友科技EDA工作室,3,1.1:1位全加器设计向导,1.11实验目的 熟悉利用MAX+plusII的原理图输入方法设计 简单组合电路,掌握层次化设计的方法。1.12实验原理 1位全加器可以用两个半加器及一个或门连 接而成。先设计底层文件:半加器,再设计 顶层文件全加器。,返回目录,2018/3/27,湖北众友科技EDA工作室,4,1.13基本设计步骤,任何一项设计都是一
2、项工程(Project),都必须首先为此工程建立一个放置与此工程相关的文件的文件夹,此文件夹将被EDA软件默认为工作库(Work Library)。一般不同的设计项目最好放在相应的文件夹中,注意,一个设计项目可以包含多个设计文件。假设本项设计的文件夹取名为MY_Project,路径为D: MY_Project, MAX+plus II 软件装在D盘maxplus2文件夹下。注意:文件夹名不能用中文,且不可带空格。,步骤1:为本项工程设计建立文件夹,2018/3/27,湖北众友科技EDA工作室,5,(1)打开MAX+plusII,选菜单“File”“New” 。,步骤2:输入设计项目和存盘,20
3、18/3/27,湖北众友科技EDA工作室,6,(2)在弹出的“New”对话框中选择“File Type”中为原理图编辑输入项“Graphic Editor file”,按“OK”后将打开原理图编辑窗。,步骤2:输入设计项目和存盘,2018/3/27,湖北众友科技EDA工作室,7,可建立波形文件,“New”对话框说明,步骤2:输入设计项目和存盘,2018/3/27,湖北众友科技EDA工作室,8,(3)在原理图编辑窗中的任何一个位置上双击鼠标,将弹出输入元件项“Enter Symbol”的对话框。,步骤2:输入设计项目和存盘,图形编辑区,2018/3/27,湖北众友科技EDA工作室,9,“Ente
4、r Symbol” 对话框说明,步骤2:输入设计项目和存盘,2018/3/27,湖北众友科技EDA工作室,10,步骤2:输入设计项目和存盘,(4)调入元件and2、not、xnor、input和output。,2018/3/27,湖北众友科技EDA工作室,11,步骤2:输入设计项目和存盘,(5)排列好调入的元件,连接好原理图。,连线方法:把鼠标放在A处变成十字形,按处左键保持十字形移至B处松开即完成连接。,步骤2:输入设计项目和存盘,(6)分别在input和output的PIN_NAME上双击使其变黑色,再用键盘分别输入各引脚名:a、b、co、so。,半加器表达式:进位:co=a and b和
5、: so=a xnor (not b),注意:半加器用原理图的实现方法很多,此处用同或的方法来实现。有兴趣的同学可以用其它的方法来实现。,2018/3/27,湖北众友科技EDA工作室,13,步骤2:输入设计项目和存盘,(7)选择菜单“File”“Save As”,选择刚才为自己的工程建立的目录D:MY_Project,将已设计好的图文件取名为:h_adder(注意后缀是.gdf),并存盘在此目录内。,2018/3/27,湖北众友科技EDA工作室,14,步骤3:将设计项目设置成工程文件,为了使MAX+ plusII能对输入的设计项目按设计者的要求进行各项处理,必须将设计文件设置成当前Projec
6、t。,步骤3:将设计项目设置成工程文件,如果设计项目由多个设计文件组成,则应该将它们的主文件,即顶层文件设置成Project。,2018/3/27,湖北众友科技EDA工作室,16,步骤4:选择目标器件并编译,(1)选择“Assign”菜单中“Device”项,弹出Device对话框。,2018/3/27,湖北众友科技EDA工作室,17,步骤4:选择目标器件并编译,(2)在Device对话框中选择ACEX1K系列EP1K30QC208-2目标芯片,点击“OK”。,2018/3/27,湖北众友科技EDA工作室,18,步骤4:选择目标器件并编译,(3)启动编译器。,2018/3/27,湖北众友科技E
7、DA工作室,19,步骤4:选择目标器件并编译,(4)单击“Start”开始编译,如果有错,排除错误后再次编译。,2018/3/27,湖北众友科技EDA工作室,20,步骤4:选择目标器件并编译,(5)编译完成。,2018/3/27,湖北众友科技EDA工作室,21,步骤5:时序仿真,(1)建立波形文件。选菜单“File”“New” ,在弹出的“New”对话框中选择“File Type”中为波形编辑输入项“Waveform Editor file”,按“OK”后将打开波形编辑窗。,2018/3/27,湖北众友科技EDA工作室,22,步骤5:时序仿真,(2)输入信号节点。在波形编辑窗选择菜单“Node
8、”,在下拉菜单中选择输入信号节点项“Enter Nodes from SNF”。,2018/3/27,湖北众友科技EDA工作室,23,步骤5:时序仿真,在弹出的对话框中单击“List”按钮,这时左列表框将列出该设计所有信号节点。设计者有时只需要观察其中部分信号的波形,可利用中间的“=”键将需要观察的信号选到右边中,然后单击“OK”按钮。我们此处全选。,2018/3/27,湖北众友科技EDA工作室,24,步骤5:时序仿真,(3)设置波形参量。在“Option”菜单中消去网格对齐项“Snap to Grid”的对勾,以便能够任意设置输入电平位置,或设置输入时钟信号的周期。,步骤5:时序仿真,(4)
9、设置仿真时间。选择“File”End Time”。,2018/3/27,湖北众友科技EDA工作室,26,步骤5:时序仿真,在End Time对话框中选择适当的仿真时间域,如可选34uS,以便有足够长的观察时间,然后点击“OK”。,2018/3/27,湖北众友科技EDA工作室,27,步骤5:时序仿真,(5)加上输入信号。,波形时间显示,为了设置此段波形为高电平,用鼠标拖黑,再按左侧的1,2018/3/27,湖北众友科技EDA工作室,28,步骤5:时序仿真,(6)波形文件存盘。选择菜单“File”“Save As”,按“OK”按钮。保存窗口中的波形文件名是默认的(h_adder.scf),所以直接
10、存盘即可。,步骤5:时序仿真,(7)运行仿真器。,步骤5:时序仿真,2018/3/27,湖北众友科技EDA工作室,31,步骤5:时序仿真,单击Simulator对话框中的“Start”按钮,仿真提示无错。,2018/3/27,湖北众友科技EDA工作室,32,步骤5:时序仿真,(8)观察半加器的仿真波形。,2018/3/27,湖北众友科技EDA工作室,33,步骤5:时序仿真,(9)精确测量半加器输入与输出波形的延迟量。,2018/3/27,湖北众友科技EDA工作室,34,步骤5:时序仿真,2018/3/27,湖北众友科技EDA工作室,35,步骤5:时序仿真,单击“Start”按钮,延迟分析完成。
11、,注意:这个延迟量是针对ACEX1K系列EP1K30QC208-2器件的,2018/3/27,湖北众友科技EDA工作室,36,步骤6:建立元件,(10)包装元件入库。,2018/3/27,湖北众友科技EDA工作室,37,步骤6:建立元件,打开“Enter Symbol”菜单可以看到我们的包装元件,不妨新建一个pdf文件调出来观察一下。,2018/3/27,湖北众友科技EDA工作室,38,步骤7:引脚锁定,(1)调出引脚锁定对话框。,注意:管脚定义跟目标器件及硬件相关,这里以ZYE1502E的EDA-E实验箱系统进行实测。,步骤7:引脚锁定,(2)定义引脚,特别注意:引脚重新定义后必须再通过编译
12、器“Compile”对文件重新进行编译,以便将引脚信息编入下载文件中。,2018/3/27,湖北众友科技EDA工作室,40,步骤8:编程下载,(1)下载方式设定。,2018/3/27,湖北众友科技EDA工作室,41,步骤8:编程下载,2018/3/27,湖北众友科技EDA工作室,42,步骤8:编程下载,2018/3/27,湖北众友科技EDA工作室,43,步骤8:编程下载,(2)下载。连接好硬件及下载连接线等。按“Configure”下载配置文件。成功后通过硬件进行逻辑验证。,步骤9:设计顶层文件,(1)依照前面的步骤2,新建f_adder.gdf文件,调入半加器。,步骤9:设计顶层文件,(2)
13、可以将前面的步骤看成是完成了一个底层元件的设计,并被包装入库。现在利用已设计好的半加器,完成顶层项目全加器的设计,详细步骤可参考前面的设计流程。这里不再详述。,补充说明:多层设计流程与单一层次设计完全一样,此时低层次的设计项目只是高层次项目(顶层设计)中的某个或某些元件,而当前的顶层设计项目也可成为更高层设计中的一个元件。,2018/3/27,湖北众友科技EDA工作室,46,1.14设计流程归纳,1.15补充说明,本示例汇集主要讲述一个项目的设计原理与设计方法,从而举一反三,提高自己的设计能力,前面讲述了设计流程,供初学者快速入门,要想知道更多软件使用知识请参考MuxPlusII学习课件,后面
14、示例将以设计思路为主,本示例汇集都在型号为ZYE1502E的EDA-E实验箱上成功验证过。,2018/3/27,湖北众友科技EDA工作室,48,1.2:2位十进制数字频率计设计,1.21设计总框图,注意:这里仅设计二位十进制数字频率计,有兴趣的同学在学习时考虑一下任意位数的频率计的设计,根据以上总框图电路模块其实是很容易扩展的。,返回目录,2018/3/27,湖北众友科技EDA工作室,49,1.22设计分析与实现,(1)计数器模块:设计有时钟使能的两位十进制计数器:en:计数使能;clk:待测频率;clr:清零;cout:进位输出;q3.0:BCD码个位数输出;q7.4:BCD码十位数输出;,
15、频率计的核心元件之一是含有时钟使能及进位扩展输出的十进制计数器,这里用一个双十进制计数74390和其它一些辅助元件来完成。,小知识:,A、74390是从宏功能元件库mf调出,了解其详细功能有两个方法:,方法一:双击调出的74390元件,可以分析原理图得知。方法二:如下图所示操作,弹出“old-style Macrofunctions”帮助对话框,选择Counters选项,找到74390即可查阅到详细功能及逻辑真值表。,通过帮助菜单可以查阅元件库元件的功能。,2018/3/27,湖北众友科技EDA工作室,51,小知识:,B、总线定义方法如右图所示:q3.0等效于q3, q2, q1, q0。,C
16、、标有相同标号的线段可视作连接线段。,2018/3/27,湖北众友科技EDA工作室,52,1.22设计分析与实现,(2)显示模块:设计有锁存功能的两位BCD码译码器:lock:锁存时钟,clk:显示时钟,锁存器,BCD码译码,位选,7段码输出,数码管片选,2018/3/27,湖北众友科技EDA工作室,53,1.22设计分析与实现,(3)测频时序控制模块:设计3个控制信号:计数器计数信号en、清零信号clr、锁存信号lock。完成频率计自动测频功能。,2018/3/27,湖北众友科技EDA工作室,54,1.22设计分析与实现,(4)频率计顶层文件设计:,(5)功能概述:对照频率计设计的顶层文件与
17、总框图,可以了解到我们成功的用原理图的方式设计出了2位十进制频率计,8Hz是基准时钟,通过ctrol模块产生1Hz的en计数有效信号,及计数锁存信号lock,计数清零信号clr。32768Hz是数码管显示扫描信号,可完成多位数码显示。fry是待测频率,cout满一百时的进位显示,可通过发光二极管显示。在二位频率范围内,输入不同的待测频率可以马上在数码管显示出测量值。有兴趣的同学不妨按总框图的结构试用原理图设计出多位频率计的设计。,1.23设计误差分析,由于计数结果不对,我们可以初步估计一下为计数出了问题,认真的分析一下计数器模块的输入时钟。如上图所示,由于en有延迟,导致在相与后多出一个下降沿
18、(由于74390为下降沿触发计数,所以我们主要分析下降沿数目),我们是以8Hz的频率量作为基准频率来产生en,当然测量8Hz的频率是准确的,实际上相当于en没有延迟,测量当然没有误差,而其它频率量显然会产生误差,而这个误差都是由于en的延迟产生的,我们若要在硬件上去掉误差是相当困难的,因为en延迟不可控制,所以我们必须在多出一个下降沿之前锁存计数数据。把时序产生电路模块的en取反作为锁存信号load,这样刚好把多余的一个下降沿去掉。但是又出现了另外一个问题,即测量8Hz时出现了问题,原来测量8Hz时是正确的,现在由于提前锁存导制测量偏小,我们把待测频率取反(如上图所示的CLK取反分析可知刚好正
19、确,另外一个解决方法不用8Hz作为基准频率,用1Hz作基准频率即不存在这样的问题了),经实验是正确的,到现在找到了误差原因和解决了误差。 从上面分析可知,若不考虑到实际情况,一不小心就出现错误,因此除了会设计出程序出来,还会分析出错原因并修正。关于多位频率计的设计可参考EDA-E的实验指导书实验二十七。,我们设计完频率计后要进行验证,通过实验验证后发现所测频率量除了8Hz外都存在1Hz的误差,那么实际误差在那儿产生的呢?,2018/3/27,湖北众友科技EDA工作室,56,1.3:参数可设置LPM兆功能块设计,1.31 LPM:Library of Parameterized Modules,
20、LPM中功能模块的内容丰富,MAX+plus II中提供的LPM中有多种实用的兆功能块,可以在左图所示看到,每一模块的功能、 参数含义、使用方法、硬件描述语言模块参数设置及调用方法都可以在“Help”菜单中的“Megafunctions/LPM”命令中找到。以下将以基于LPM_ROM的4位乘法器设计(99乘法器)来说明LPM模块的原理图使用方法。,返回目录,2018/3/27,湖北众友科技EDA工作室,57,1.32基于LPM_ROM的4位乘法器设计,(1)调出LPM_ROM兆功能块,将弹出“Edit Ports/Parameters”对话框(或双击右上角的参数显示文字,或如下图所示右击选择可
21、弹出对话框)。,2018/3/27,湖北众友科技EDA工作室,58,1.32基于LPM_ROM的4位乘法器设计,(2)设置LPM_ROM兆功能块参数:,2018/3/27,湖北众友科技EDA工作室,59,1.32基于LPM_ROM的4位乘法器设计,(3)设置结果如下:,地址输入由时钟inclock的上升沿锁入,乘法表数据文件,指示所存路径,路径要一致。,q输出为非寄存方式,q输出为8位,address地址输入位为8位,2018/3/27,湖北众友科技EDA工作室,60,1.32基于LPM_ROM的4位乘法器设计,(4)4位乘法器原理图:,4位乘法器原理说明: ad3.0四位作为乘数,乘法表的横
22、选地址; ad7.4四位作为被乘数,乘法表的列选地址,clk为地址锁存时钟,q7.0为所选地址对应的乘法结果,乘法表rom_data.mif根据以上原理建立,假如: 乘数ad3.0=4, 被乘数ad7.4=5,则在LPM_ROM中第五行,第六列所寄存的数据为20,即所得结果,通过q7.0输出。,2018/3/27,湖北众友科技EDA工作室,61,1.32基于LPM_ROM的4位乘法器设计,(5)乘法表的建立:在“New”菜单选择Text Editor File命令进入文本编辑器,建立mif文件。,ROM数据宽度,ROM数据深度(8位地址深度为256),地址/数据用十六进制表示,表格格式写法,9
23、9表示地址即乘数与被乘数,81表示数据即乘法结果。,注意:存盘路径要与前面设置的LPM_FILE路径一致。,2018/3/27,湖北众友科技EDA工作室,62,1.4:波形输入设计方法,1.41 MAX+plus II中提供了直观的、易于理解的波形输入(Waveform Design)方式,可以设计组合电路、简单的时序电路和状态机。同其他的输入方式一样,波形设计输入可以生成Symbol(原理图中的元件),为更高一级设计调用。在此,用波形输入方式设计一个简单的时序电路,讲述此种设计方法。,返回目录,2018/3/27,湖北众友科技EDA工作室,63,1.42:一位热码循环编码器,(1)原理:cl
24、k为时钟信号,start为编码有效信号,低电平时有效,当start有效时, c3-c0从1000-0100-0010-0001-1000循环显示,保持一位热码循环显示。,2018/3/27,湖北众友科技EDA工作室,64,1.42:一位热码循环编码器,(2)选择MAXplus II的菜单“File”中“New”对话框如下图所示:选择“Waveform Editor file”。注意要选“WDF”文件类型。,2018/3/27,湖北众友科技EDA工作室,65,1.42:一位热码循环编码器,(3)选择菜单“Node”中 “Insert Node.”,弹出“Insert Node”对话框。在接点名中填入需要增加的节点,选择节点类型。输完所有的节点,就可以把波形输进去了,2018/3/27,湖北众友科技EDA工作室,66,1.42:一位热码循环编码器,(4)注意:C3-C0引脚的变化与时钟的上升沿是严格一致的,不能有延迟。如下所示输入相关参数。然后输入好相关波形存盘编译即完成设计。,2018/3/27,湖北众友科技EDA工作室,67,结束语:,示例汇集暂时进行到此为止,主要是引导学生掌握设计方法,更高层次的设计暂时还有很多末涉及到,在注重基础.,返回首页,