实验三1位全加器的设计
一、实验目的:
熟悉Alter公司的Max+Plus II软件,掌握采用EDA技术进行设计的过程,学会使用原理图和VHDL语言的两种方法进行电路设计。
二、实验内容:
1、编写2输入或门的VHDL程序。
2、编写半加法器的VHDL程序。
3、采用原理图方法设计全加器。
4、进行逻辑编译、综合和优化。
5、进行软件仿真。
三、实验步骤:
1、建立新目录:如e:\example;
2、第一次运行MAX+PLUS II——进入MAX+PLUS II
双击MAX+PLUS II 图标:
或:开始→程序→Altera→
3、创建VHDL源程序
A:创建2输入或门的VHDL源程序:ORM2.VHD
(1)生成一个新的文本文件:按屏幕上方的按钮,或选择“file”→“new…”,
出现对话框:
选择Text Editor file(文本编辑方式),然后按下OK按钮,会出现一个无标题的文本编辑窗口——Untitled-Text Editor。
(2)在编文本辑窗口中输入2输入或门的VHDL源程序:ORM2.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ORM2 IS
PORT (A,B: IN STD_LOGIC;
C: OUT STD_LOGIC);
END ORM2;
ARCHITECTURE ART1 OF ORM2 IS
BEGIN
C<=A OR B;
END ARCHITECTURE ART1;
(3)保存文件:按工具栏中的按钮,或选择File→Save,出现对话
框:
在File Name(文件名)栏中输入文件名,如ORM2.vhd
在驱动器选择栏选刚刚建立的项目路径所在的驱动器,如e:
在路径栏选择所建立的项目路径,如:example
在Automatic Extension(自动扩展名)的下拉菜单中选择.vhd
按键,就把输入的文件存放在了目录e:\example中了。
此时,所有的标识符都变色。
(4)创建元件图形符号:(为了能在图形编辑器中调用ORM2)
(a)选择“File”→“Create Default Symbol”,出现对话框:
(b)按确定后编辑器开始进行编译:
如果编译出现错误,要对源程序进行修改,重复上面的步骤,直到元件符号创建成功为止,成功后出现对话框。
然后退出编辑器,回到主窗口。
B:创建半加器的VHDL源程序H_ADDER.VHD,及其并其元件符号:重复上面(1)~(4)步骤。
【注】:必须将文件放在同一目录下。
半加器的VHDL程序:H_ADDER.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY H_ADDER IS
PORT ( A,B: IN STD_LOGIC;
CO,SO:OUT STD_LOGIC);
END H_ADDER;
ARCHITECTURE ART2 OF H_ADDER IS
BEGIN
SO<=( A OR B) AND (A NAND B);
CO<=NOT (A NAND B);
END ARCHITECTURE ART2;
C:创建源文件:全加器F_ADDER.GDF
(1)新建图形文件:“file”→“New”,选择“Graphic Editor File”,按“OK”。
(2)往图中添加元件:
a. 在图形编辑器中的任意位置双击鼠标左键,或单击鼠标右键,选择“Enter Symbol”,出现对话框,可以在“Symbol Name”中输入元件名,也可以在“symbol File”中选择。
将2输入或门ORM2.vhd和2个半加器H_ADDER.vhd调入原理图编辑器中。
b. 添加“input”和“output”,直接输入元件名“input”和“output”,或在“e:\maxplus2\max2lib\prim”库中查找。
(3)按图在符号之间进行连线:
如果需要连接两个端口,将鼠标移到其中一个端口,则鼠标自动变为‘+’形状。
一直按住鼠标的左键并将鼠标拖到第二个端口,放开左键,则一条连接线被画好了。
如果需要删除一根连接线,单击这根连接线并按Del 键。
(4)设置输入/输出引脚名
在“input”和“output”符号的引脚上双击鼠标左键,就可以在端口上输入新的引脚名。
如“AIN、BIN、CIN”和“COUT、SUM”。
(5)保存顶层文件:“file”→“save”,取名为“F_ADDER.GDF”。
4、系统的编译、综合、适配
(1)将所要编译的文件设置为顶层文件:
选择“File”→“Projiet”→“Set Project to Current File”,把当前的工程设为顶层。
(2)选择目标芯片:
首先,需要为项目指定一个器件系列,然后,选择某个具体的器件,也可以让编译器在该器件系列内自动选择最适合的项目的器件。
“Assign”→“Device…”,在对话框中的Device Family下拉栏中选择FLEX10K,在Devices列表中选择芯片型号“EPF10K10LC84-3”,或选择AUTO 让MAX+PLUS II 来选择一个器件,然后按“OK”。
(3)确定引脚:
Altera 推荐让编译器自动为您的项目进行管脚分配。
但如果用户必须自己分配管脚,请按以下步骤进行:
“Assign”→“Pin/Location/Chip”,弹出对话框,在“Note Name”中输入引脚名,在“Pin:”中选择芯片的引脚号。
然后按“Add”,就在下面的窗口中出现引脚设定的说明句。
(注:引脚必须一个一个地确定),全部设定结束以后,按“OK”。
引脚设定
(4)编译、综合、适配:打开编译器窗口:
在MAX+PLUS II 菜单内选择Compiler项,则出现编译器窗口。
选择Start即可开始编译,MAX+PLUS II 编译器将检查项目是否有错,
并对项目进行逻辑综合,然后配置到一个Altera 器件中,同时将产生报告文件、编程文件和用于时间仿真用的输出文件,则一次性完成编译、综合、优化、逻辑分割和适配。
5、软件仿真
(1)建立波形文件:选择“File”→“New”,选择“Waveform Editor file”。
(2)选择仿真信号:“Node”→“Enter Nodes from SNF…”,出现选择信号对话框。
按右侧的“List”按钮,左边的列表框中将立即列出所有可以选择的信号,然后按右侧的“=>”按钮,将左边列表框中的信号全部选中到右边的列表中。
按“OK”。
(3)保存波形文件:“File”→“Save”,取名为F_ADDER.scf。
(4)设置信号类型:
先用鼠标在输入波形上拖一需要改变的黑色区域,然后点击左排按钮,“0”代表低电平、“1”高电平、“X”任意、“Z”高阻态、“INV”反相、“G”
总线数据设置。
按集成环境中的缩小波形按钮,以便在仿真时能浏览波形全貌。
(5)运行仿真器:“MAX+plusⅡ”→“Simulator”。
(6)观察仿真波形,与1位全加器的真值表相比较,确定设计的正确性。
1位全加器的真值表。