第4章图形输入设计方法第4章图形输入设计方法4.14位加法器设计实例4.2宏功能模块及其使用4.3LPM宏模块及其使用第4章图形输入设计方法4.14位加法器设计实例本节将通过一个4位加法器的设计实例来介绍采用图形输入方式进行简单逻辑设计的步骤。4.1.14位加法器逻辑设计4位加法器是一种可实现两个4位二进制数的加法操作的器件,其输入/输出端口如图4.1所示。输入为两个4位二进制的被加数A和B,以及输入进位位Ci,输出为一个4位二进制和数D和输出进位位Co。第4章图形输入设计方法图4.14位加法器端口第4章图形输入设计方法4位加法器的顶层结构如图4.2所示,由一个半加器和三个全加器串接而成。工作时,首先是低位A1与B1两位数相加,得出最低位的和数D1和进位位C1,然后第二位加数A2、B2以及第一位全加运算后的进位输出C1进行全加操作,得到和数的第二位D2和进位位C2,依次类推,最终获得4位和数D4和进位位Co。半加操作就是求两个加数A、B的和,输出本位和数S及进位数C,其逻辑状态如表4.1所示。第4章图形输入设计方法图4.24位加法器的顶层结构第4章图形输入设计方法表4.1半加器逻辑状态表ABCS0000010110011110第4章图形输入设计方法由逻辑状态表可写出逻辑式:BABAABBAS⊙ABC由逻辑式可获得如图4.3所示的逻辑图。每个全加器有3位输入,分别是加数A、B和一个进位位Ci。将这三个数相加,得出本位和数(全加和数)D和进位数Co。这个过程称为“全加”,全加器的逻辑状态如表4.2所示。第4章图形输入设计方法图4.3半加器逻辑结构第4章图形输入设计方法表4.2全加器的逻辑状态表ABCiCoD0000000101010010111010001101101101011111全加器如图4.4所示,由两个半加器和一个“或”门组成。第4章图形输入设计方法图4.4全加器逻辑结构工作时A和B在第一个半加器中相加,得出的结果再和Ci在第二个半加器中相加,即得出全加和D。两个半加器的进位数通过“或”门输出作为本位的进位数Co。第4章图形输入设计方法4.1.2半加器模块设计过程在进行半加器模块逻辑设计时,采用由上至下的设计方法,在进行设计输入时,需要由下至上分级输入,本节将介绍使用Quartus Ⅱ 7.2“GraphicEditor”进行设计输入的步骤。(1)双击桌面上的Quartus Ⅱ 7.2快捷图标,打开如图4.5所示的“Quartus Ⅱ”窗口。(2)选择如图4.6所示的“File”→“NewProjectWizard…”命令,打开如图4.7所示的“NewProjectWizard:Introduction”对话框。第4章图形输入设计方法图4.5“Quartus Ⅱ”窗口第4章图形输入设计方法图4.6选择“File”→“NewProjectWizard…”命令第4章图形输入设计方法图4.7“NewProjectWizard:Introduction”对话框第4章图形输入设计方法图4.8“NewProjectWizard:Directory,Name,Top-LevelEntity[page1of5]”对话框第4章图形输入设计方法(4)在如图4.8所示的对话框中的“Whatistheworkingdirectoryforthisproject?”编辑框内输入新建项目的地址路径,本例中设置路径为“d:\example”。在“Whatisthenameofthisproject?”编辑框内输入项目的名称,本例中设置项目名称为“hsa”。在“Whatisthenameofthetop-leveldesignentityforthisproject?Thisnameiscasesensitiveandmustexactlymatchtheentitynameinthedesignfile”编辑框内输入设计实体的名称,本例中设置设计实体的名称为“hsa”,单击“Next”按钮,打开如图4.9所示的“NewProjectWizard:AddFiles[page2of5]”对话框。第4章图形输入设计方法图4.9“NewProjectWizard:AddFiles[page2of5]”对话框第4章图形输入设计方法“NewProjectWizard:AddFiles[page2of5]”对话框用于向项目中添加已存在的文件,由于本例中新建的是空白项目,因此暂时没有文件需要添加。(5)在如图4.9所示的对话框中单击“Next”按钮,打开如图4.10所示的“NewProjectWizard:Family&DeviceSettings[page3of5]”对话框。第4章图形输入设计方法图4.10“NewProjectWizard:Family&DeviceSettings[page3of5]”对话框第4章图形输入设计方法(6)在如图4.10所示的对话框中的“Family”下拉列表中选择“FLEX10K”,在“Targetdevice”区域中选择“Specificdeviceselectedin‘Availabledevices’list”单选项。然后在对话框下方的“Availabledevices”列表中选择“EPF10K10LC84-4”,单击“Next”按钮,打开如图4.11所示的“NewProjectWizard:EDAToolSettings[page4of5]”对话框。第4章图形输入设计方法图4.11“NewProjectWizard:EDAToolSettings[page4of5]”对话框第4章图形输入设计方法“NewProjectWizard:EDAToolSettings[page4of5]”对话框用于设置第三方软件。Quartus Ⅱ软件允许使用第三方软件进行综合、仿真和分析,在新建项目时就可以指定使用其他软件进行这些处理。本例中使用Quartus Ⅱ自带的综合、仿真和分析工具,所以不需要设置该对话框中的内容。(7)在如图4.11所示的对话框中单击“Next”按钮,打开如图4.12所示的“NewProjectWizard:Summary[page5of5]”对话框。第4章图形输入设计方法图4.12“NewProjectWizard:Summary[page5of5]”对话框第4章图形输入设计方法(8)在如图4.12所示的对话框中单击“Finish”按钮,结束项目的新建操作。此时Quartus Ⅱ操作界面内的“ProjectNavigator”面板将显示新建的“hsa”项目,如图4.13所示。图4.13“ProjectNavigator”面板第4章图形输入设计方法完成了项目的新建操作后,接下来要在项目中新建图形设计文件。(9)单击“QuartusⅡ”工具栏中的新建文件工具按钮,打开如图4.14所示的“New”对话框。(10)在如图4.14所示的对话框中的“DeviceDesignFiles”选项卡中选择“BlockDiagram/SchematicFile”项,单击“OK”按钮,新建一个默认名为“Block1.bdf”的模块原理图文件,如图4.15所示。(11)在图形输入工作界面中单击鼠标右键,在弹出的菜单中选择“Insert”→“Symbol”命令,打开如图4.16所示的“Symbol”对话框。第4章图形输入设计方法图4.14“New”对话框第4章图形输入设计方法图4.15新建的“Block1.bdf”模块原理图文件第4章图形输入设计方法图4.16“Symbol”对话框第4章图形输入设计方法(12)单击如图4.16所示的对话框左上角的“Libraries”列表中的“+”符号,展开该树形列表,选择“Libraries”→“primitives”→“pin”→“input”符号,如图4.17所示。图4.17选择“input”符号第4章图形输入设计方法(13)单击“OK”按钮,在图形输入工作区中单击鼠标左键两次,添加两个输入端口符号,如图4.18所示。图4.18添加的两个输入端口第4章图形输入设计方法(14)按照步骤(11)~(13)中的方法,在“Block1.bdf”文件窗口中分别添加一个“AND2”、“NOT”和“XNOR”元件符号,以及两个“OUTPUT”元件符号,如图4.19所示。图4.19添加元件后的“GraphicEditor”窗口第4章图形输入设计方法当需要重复添加元件时,可以按住“Ctrl”键,用鼠标单击并拖动需要重复添加的元件符号至另一个位置,松开鼠标,即可复制一个相同的元件。(15)将鼠标移动到元件的引脚端,鼠标形状将自动变为“+”形,单击并拖动鼠标至另一个元件符号的引脚端,生成一条连线将这两个元件引脚连接起来。按照如图4.20所示的半加器原理图,将“Block1.bdf”文件窗口中的元件连接起来。(16)双击图4.20所示工作区左上角的名称为“pin_name”的“INPUT”元件,打开如图4.21所示的“PinProperties”对话框。第4章图形输入设计方法图4.20半加器原理图第4章图形输入设计方法图4.21“PinProperties”对话框第4章图形输入设计方法(17)在“PinProperties”对话框中的“Pinname(s):”编辑框中输入“a”,单击“确定”按钮,将选中“INPUT”元件端口的名称设置为“a”。(18)按照步骤(17)中的方法,将“INPUT”和“OUTPUT”元件的名称改为如图4.22所示的自定义的引脚名称。图4.22自定义的引脚名称第4章图形输入设计方法(19)选择主菜单中的“File”→“Save”命令,打开如图4.23所示的“另存为”对话框。图4.23“另存为”对话框第4章图形输入设计方法(20)在如图4.23所示的“另存为”对话框中的“文件名”编辑框内输入“hsa”,然后单击“保存”按钮,将文件名称改为“hsa.gdf”,并且将文件存盘于新建项目的文件夹中。(21)在主菜单中选择“Processing”→“StartCompilation”命令,系统对设计进行编译,同时打开“CompilationReport-FlowSummary”窗体,“Status”视图中将显示编译的进程,界面如图4.24所示。第4章图形输入设计方法图4.24编译过程中的“Quartus Ⅱ”窗体第4章图形输入设计方法(22)编译完成后,系统弹出如图4.25所示的“Quartus Ⅱ”消息框,提示编译完成。图4.25“Quartus Ⅱ”消息框第4章图形输入设计方法(23)单击“确定”按钮,关闭该消息框。编译完成后的“CompilationReport-FlowSummary”窗体如图4.26所示。图4.26所示的“CompilationReport-FlowSummary”窗体中显示了编译的结果信息,通过该窗体,可知半加器单元占用2个逻辑单元,4个引脚,没有占用存储单元。第4章图形输入设计方法图4.26“CompilationReport-FlowSummary”窗体第4章图形输入设计方法在完成设计文件的编译后,为检验设计的正确性,下一步就是对设计进行功能校验。(24)在主菜单中选择“File”→“New”命令,打开“New”对话框。(25)单击“New”对话框中的“OtherFiles”选项卡标签,打开如图4.27所示的“OtherFiles”选项卡。(26)在如图4.27所示的选项卡中选择“VectorWaveformFile”选项,单击“OK”按钮,新建一个如图4.28所示的默认名称为“Waveform1.vwf”的波形文件。第4章图形输入设计方法图4.27“OtherFiles”选项卡第4章图形输入设计方法图4.28新建的“Waveform1.vwf”波形文件第4章图形输入设计方法(27)在“Waveform1.vwf”的波形文件左侧的节点列表中单击鼠标右键,在弹出的菜单中选择“Insert”→“InsertNodeorBus…”命令(如图4.29所示),打