当前位置:文档之家› 应用VHDL语言设计八位二进制加法器

应用VHDL语言设计八位二进制加法器

返回
§4.2 完成工作任务的引导
一、资讯
要完成应用VHDL语言设计出一个八位二进制加法器,请大家 认真阅读4.3节所介绍的基本内容,并复习3.2节的有关介绍。
二、计划
类似3.2节中提出有3种应用原理图设计输入法实现八位二进制
加法器的方案,应用VHDL语言设计八位二进制加法器也有多种
方案。
第一种方案:以8个全加器为底层模块,用VHDL语言层次设计
法设计八位二进制加法器。
第二种方案:运用在程序包ieee.std_logic_signed中定义
的标准逻辑位矢量的加法来设计八位二进制加法器。
下一页
§4.2 完成工作任务的引导
第三种方案:应用VHDL语言设计法中的LPM方法来设计八位 二进制加法器。
三、决策
第一种方案与第3章的第一种方案相似,其实这种方案不是设计 上最简单的方案,也不是性能最好的方案。但它所应用的层次设计 法是VHDL语言设计中重要的一种方法,建议大家应用这种方法做 一次。
第4章 应用VHDL语言方法设计 八位二进制加法器
【要求】
应用VHDL语言设计八位二进制加法器
【知识点】•ຫໍສະໝຸດ 应用VHDL语言设计八位二进制加法器

掌握VHDL语言输入法

掌握VHDL语言层次化设计方法
【重点和难点】
应用VHDL语言设计八位二进制加法器
下一页
第4章 应用VHDL语言方法设计 八位二进制加法器
end add4;
上一页 下一页
§4.3 相关技术基础知识与基本技能
architecture b of add4 is signal ct:std_logic_vector(6 downto 0); component fulladd is
port(cin:in std_logic; a,b: in std_logic; s:out std_logic; cout:out std_logic);
begin crlt>=('0'&a)+('0'&b)+cin; s>=crlt(0); cout>=crlt(1);
End; (3)设计顶层设计文件
设计顶层设计文件add4.vhd,其中把全加器文件作为元件调用:
上一页 下一页
§4.3 相关技术基础知识与基本技能
library ieee; use ieee.std_logic_1164.all; entity add4 is
上一页 下一页
§4.3 相关技术基础知识与基本技能
对于弹出的选择其他EDA工具的对话框,由于我们使用 Quartus且的集成环境进行开发,因此不需做任何改动。单击Next 按钮进入如图4-11所示工程的信息总概对话框。
在图4-11中单击Finish按钮就建立了一个空的工程项目。 2.建立VHDL文件
2.仿真VHDL文件 执行File=>New,如图4-18所示,选择Other Files中的 Vector Waveform File ,然后确定。
上一页 下一页
§4.3 相关技术基础知识与基本技能
出现文件编辑器,如图4-19所示。 在图4-19中鼠标所在处单击鼠标右键,出现图4-20所示菜单,选 择InsertNode or Bus…命令。 出现图4-21所示的对话框,单击Node Finder…按键。 在出现的图4-22所示的对话框中单击List按键。此操作是在对话 框中Filter: 文本框显示Pins:all的情况下进行的;若此文本框不显示 Pins:all,请选择Pins:all项。 选择需要的输入输出引脚,如图4-23所示。 如图4-24所示,单击鼠标所点的按键,选中需要的输入输出引脚。
a,b : in std_logi; ---加数及被加数 s : out std_ logic; ---本位和
cout: out std logic); ---向高位的进位信号 End;
上一页 下一页
§4.3 相关技术基础知识与基本技能
architecture one of fulladd is signal crlt:std_logic_vector(1 downto 0);
四、实施
在应用第一种方案设计时,请参考下一节例4.1或例4.2。先设计 底层模块全加器,再在顶层文件中调用全加器元件,构成八位二进制 加法器。在应用第一种方案设计时,请参考下一节例4.3。
五、检查
对所设计的八位二进制加法器的各个底层模块和顶层模块进行编译 仿真,以验证所设计电路否符合设计的要求。
上一页 下一页
上一页 返 回
§4.3 相关技术基本知识与基本技能
一、 Quartus II的VHDL输入法
Quartus II 的常用输入法有原理图输入法和 HDL 输入法。 HDL 输入法又有AHDL, VHDL和Verilog HDL三种语言,本书 主要介绍VHDL语言。下面以全加器设计为例介绍 Quartus II 的 VHDL文件的输入编辑和编译仿真方法。
上一页 下一页
§4.3 相关技术基础知识与基本技能
然后,两次确定,出现如图4-25所示的画面。 执行Edit=>End Time命令,设置合适的时问,如图4-26所示。 执行Edit=>Grid Size命令,设置时问单位为100ns,如图427所示。 设置输入信号波形,保存文件,注意保存的波形文件名与工程的顶 层实体名要一致。执行Processing=>Start Simulation命令,进 行仿真,如图4-28所示。 仿真结果如图4-29所示。 认真核对输入输出波形,可检查设计的功能正确与否。
上一页 下一页
§4.3 相关技术基础知识与基本技能
(二)编译仿真VHDL文件 1.编译VHDL文件 执行Processing=>Start Compilation命令,如图4-16所示,
进行编译。 若通过,则弹出如图4-17所示对话框。 若不通过,先双击第一个错误提示,可使鼠标出现在第一个错误处
附近,检查纠正,第一个错误后保存再编译,如果还有错误,重复以 上操作,直至最后通过。
单击Family下拉框,根据需要选择器件的系列,比如Cyclone系 列FPGA 。然后在“Available devices:”中选择需要的器件的型 号,比如“EP1C3T144C8”,注意在Show in 'Available devices' list一栏中选上“Show Advanced Devices”以显 示所有的器件型号。单击Next按钮,出现如图4-10所示的对话框。
上一页 下一页
§4.3 相关技术基础知识与基本技能
二、VHDL层次化文件设计
VHDL层次化文件设计,就是将一个复杂的电路划分为若十模块, 再把较大的模块划分为较示的模块,先编写VHDL设计文件分别描写 每个较示的模块,再编写VHDL设计文件描写较大的电路模块,最后 编写顶层文件来描写整体电路。顶层文件把各个模块文件作为元件调 用,而较大的模块文件把较示的模块的文件作为元件调用。下面以四 位二进制加法器为例说明VHDL层次化文件设计方法。
end component; begin
上一页 下一页
§4.3 相关技术基础知识与基本技能
u0: fulladd port map(cin,a(0),b(0),s(0),ct(0)); ul: fulladd port map(ct(0),a(1),b(1),s(1),ct(1)); u2: fulladd port map(ct(1),a(2),b(2),s(2),ct(2)); u3: fulladd port map(ct(2),a(3),b(3),s(3),cout); end b;
设计全加器电路文件 fulladd.vhd:
上一页 下一页
§4.3 相关技术基础知识与基本技能
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_ signed.all; entity fulladd is port( cin : in std_logic; ---来自低位的进位信号
当然,对于四位二进制加法器而言,此法并非最好的描写方法,但 对于学习VHDL层次化文件设计来说,这是一个简单的能说明问题的 例子。
上一页 下一页
§4.3 相关技术基础知识与基本技能
【例4.1】用VHDL层次化文件设计法设计一个四位二进制加法 器。
(1)电路模块划分 根据算法分析,四位二进制加法器可由4个全加器构成,其原理 方框图如图4-30所示。 (2)设计底层设计文件
(一)输人编辑VHDL文件 1.建立工程项目 打开 Quartus II 软件,执行File => New Project Wizard 命令,建立工程,如图4-5所示。 执行该命令后,在所弹出的图4-6界面中单击Next按钮。
下一页
§4.3 相关技术基础知识与基本技能
然后,在弹出的指定工程名称对话框中,填写第一、第一和第二个 文本框的内容,如图4-7所示,其中第一、第一和第二个文本框分别 是工程项目口录、工程项目和工程项目顶层设计实体的名称。 单击Next按钮,出现如图4-8所示的添加工程文件对话框。 这单没有文件击添加,单击Next按钮进行下一步,选择FP GA器件 的型号,如图4-9所示。
将“Add file to current project”选项选上,使该文件 添加到刚建立工程中去,如图4-14所示。 3.编辑VHDL文件
在VHDL编辑器下输入编辑下面源代码,并保存,如图4-15 所示。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_ signed.all; entity fulladd is port( cin : in std_ logic;----来自低位的进位
相关主题