我是靠谱客的博主 悲凉飞鸟,这篇文章主要介绍计组实验一 - 8位可控的二进制补码加减法器,现在分享给大家,希望可以做个参考。

实验说明:

1.使用 quartusII 9.0 完成8位可控的二进制补码加减法器
2.使用 VHDL 语言编写代码
3.学会模块化编程处理

实验步骤

一. 先实现一位全加器
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
library ieee; use ieee.std_logic_1164.all; entity fa is port(a,b,ci : in std_logic; s,co : out std_logic); end fa; architecture b_fa of fa is begin s<=a xor b xor ci; co<=((a xor b) and ci) or (a and b); end b_fa;
二. 使用刚设计的全加器设计
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
library ieee; use ieee.std_logic_1164.all; entity adder8 is port(a,b : in std_logic_vector(7 downto 0); ci,m : in std_logic; s : out std_logic_vector(7 downto 0); co ,vf: out std_logic); end adder8; architecture s_adder8 of adder8 is component fa is port(a,b,ci : in std_logic; s,co : out std_logic); end component; signal c: std_logic_vector(7 downto 1); begin cm1 : fa port map(a(0),b(0) xor m,ci,s(0),c(1)); cm2 : fa port map(a(1),b(1) xor m,c(1),s(1),c(2)); cm3 : fa port map(a(2),b(2) xor m,c(2),s(2),c(3)); cm4 : fa port map(a(3),b(3) xor m,c(3),s(3),c(4)); cm5 : fa port map(a(4),b(4) xor m,c(4),s(4),c(5)); cm6 : fa port map(a(5),b(5) xor m,c(5),s(5),c(6)); cm7 : fa port map(a(6),b(6) xor m,c(6),s(6),c(7)); cm8 : fa port map(a(7),b(7) xor m,c(7),s(7),co); vf<=c(6) xor c(7); -- vf 为溢出信号 end s_adder8;
三.编译 adder8.vhd 文件

设置顶层文件(顶层文件为 adder8.vhd),选好实验室对应的芯片(如 Cyclone - EP1C12Q240C8 ),设置好相应引脚,最后进行编译,编译完成后,连接实验箱进行检验。

原理图
0000

实验效果
0001

四. 改进

实际上 ,通过原理图来看,ci 与 m 信号实际上是相同的信号。所以,最终实现是

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
library ieee; use ieee.std_logic_1164.all; entity adder8 is port(a,b : in std_logic_vector(7 downto 0); m : in std_logic; s : out std_logic_vector(7 downto 0); vf: out std_logic); end adder8; architecture s_adder8 of adder8 is component fa is port(a,b,ci : in std_logic; s,co : out std_logic); end component; signal c: std_logic_vector(8 downto 1); begin cm1 : fa port map(a(0),b(0) xor m,m,s(0),c(1)); cm2 : fa port map(a(1),b(1) xor m,c(1),s(1),c(2)); cm3 : fa port map(a(2),b(2) xor m,c(2),s(2),c(3)); cm4 : fa port map(a(3),b(3) xor m,c(3),s(3),c(4)); cm5 : fa port map(a(4),b(4) xor m,c(4),s(4),c(5)); cm6 : fa port map(a(5),b(5) xor m,c(5),s(5),c(6)); cm7 : fa port map(a(6),b(6) xor m,c(6),s(6),c(7)); cm8 : fa port map(a(7),b(7) xor m,c(7),s(7),c(8)); vf<=c(8) xor c(7); end s_adder8;

去除了 ci 管脚分配
0002

最后

以上就是悲凉飞鸟最近收集整理的关于计组实验一 - 8位可控的二进制补码加减法器的全部内容,更多相关计组实验一内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(88)

评论列表共有 0 条评论

立即
投稿
返回
顶部