VHDL 一位全加器 VHDL(VHSIC 硬件描述语言)是一种基于文本的硬件描述语言,用于描述数字电路的行为。该语言广泛应用于数字电路设计、仿真、测试和验证。 一、设计目的 本实验的目的是熟悉 Quartus II 的 VHDL 文本设计流程,全过程,学习组合电路的设计、仿真和测试。通过设计一位全加器,掌握 VHDL 语言的使用,了解数字电路的设计和实现过程。 二、设计内容 本实验的设计内容是设计一位全加器,包括半加器和或门的设计。半加器是指将两个二进制数相加的电路,而或门是指将两个二进制数进行逻辑或运算的电路。通过组合半加器和或门,实现一位全加器的设计。 三、程序设计原理 半加器的设计原理是采用布尔方程描述方法或真值表描述方法。布尔方程描述方法是通过布尔代数式来描述电路的行为,而真值表描述方法是通过真值表来描述电路的行为。在本实验中,我们采用布尔方程描述方法来设计半加器。 半加器的布尔方程描述为: so <= NOT(a xor (not b)); co <= a and b; 其中,so 是半加器的输出,co 是半加器的进位输入,a 和 b 是半加器的输入。 四、源程序 本实验的源程序包括三个部分:半加器、或门和一位全加器。 半加器的源程序为: ```vhdl LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT(a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder IS BEGIN so <= NOT(a xor (not b)); co <= a and b; END ARCHITECTURE fh1; ``` 或门的源程序为: ```vhdl LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT(a, b : IN STD_LOGIC; c : OUT STD_LOGIC); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c <= a or b; END ARCHITECTURE one; ``` 一位全加器的源程序为: ```vhdl LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS PORT(ain, bin, cin : IN STD_LOGIC; cout, sum : OUT STD_LOGIC); END ENTITY f_adder; ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder PORT(a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END COMPONENT; COMPONENT or2a PORT(a, b : IN STD_LOGIC; c : OUT STD_LOGIC); END COMPONENT; SIGNAL d, e, f : STD_LOGIC; BEGIN u1 : h_adder PORT MAP(a => ain, b => bin, co => d, so => e); u2 : h_adder PORT MAP(a => e, b => cin, co => f, so => sum); u3 : or2a PORT MAP(a => d, b => f, c => cout); END ARCHITECTURE fd1; ``` 五、调试过程 本实验的调试过程包括七个步骤: 1. 创建一个 Quartus II 工程,并新建一个 VHDL 文件,实现一位全加器电路。 2. 进行编译前设置,包括 FPGA 目标芯片、配置器件的工作方式、配置器件和编程方式、目标器件闲置引脚状态等的配置。 3. 进行全程编译。 4. 新建一个波形文件,进行仿真分析,手动增加激励,验证功能,仿真时序图如下图。 5. 参照 DE2 平台的引脚分配表分配引脚,用 SW2~SW0 作为输入 ain bin cin,DE2 平台上的 LEDR0 输出 sum, LEDR1 输出 cout。 6. 编译工程,完成后下载到 FPGA 中。 7. 拨动波段开关并观察 LED 灯的显示,以验证设计的功能是否正确,经检验,电路正确,整理仪器。 六、遇到的问题及解决方法 在实验过程中,我们遇到了两个问题: 1. 对管脚的配置不熟悉,导致管脚配置错误。通过老师指导以后,我们改正错误,正确配置了管脚。 2. 对实验软件不够熟悉,特别是功能上的实现。我们只能通过不断练习来熟悉。
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助