名称:50以内的加法及显示电路设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
1) 基本要求:
设计 2 位数的加法及显示电路,能实现 0-50 以内的加法运算,结果采用数码管显示。
2) 端口定义:
输入加数个位端口 AF(3 downto 0),十位端口 AS(3 downto 0),被加数个位端口 BF(3 downto 0),十位端口 BS(3 downto 0),输出和十位显示端口 SLT(7 downto 0),个位显示 FLT(7 downto 0)。
3) 实现思路:
(1) 加法原理:分别计算十位、个位的和得到最终的结果和。
(2) 1 位数加原理:
Ø 定义信号暂存加数、被加数:AA,BB: INTEGER RANGE 0 to 9:=0;
Ø 定义信号暂存和 CC: INTEGER RANGE 0 to 9:=0; 进位位 Co: STD_LOGIC :=’0’;
Ø 端口转换为整数:AA<=CONV_INTEGER(AF); BB<= CONV_INTEGER(BF);
Ø 执行运算:CC<=AA+BB;
(3) 结果转换为端口状态:
Ø 得到各位和后,将结果的个位、十位依次译码,显示到相应数码管端口 FLT 与 SLT。
Ø 计算输出和的十位数时,注意个位计算的进位。
(4) 结果和的显示电路程序参考基础电路的数码管译码电路。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 芯片管脚
6. 仿真图
数码管值代码数值如下
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --50 以内的加法及显示电路设计 ENTITY add_50 IS PORT ( AF :IN STD_LOGIC_VECTOR(3 DOWNTO 0);--加数个位端口 AS :IN STD_LOGIC_VECTOR(3 DOWNTO 0);--加数十位端口 BF :IN STD_LOGIC_VECTOR(3 DOWNTO 0);--被加数个位端口 BS :IN STD_LOGIC_VECTOR(3 DOWNTO 0);--被加数十位端口 SLT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--输出和十位显示端口 FLT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--和个位显示 ); END add_50; ARCHITECTURE behave OF add_50 IS --定义中间信号 SIGNAL AA,BB: INTEGER RANGE 0 to 9:=0;--定义信号暂存加数、被加数 SIGNAL CC: INTEGER RANGE 0 to 18:=0;--定义信号暂存和 SIGNAL CC_o: INTEGER RANGE 0 to 18:=0;--定义信号暂存和 SIGNAL SS,TT: INTEGER RANGE 0 to 9:=0;--定义信号暂存加数、被加数 SIGNAL UU: INTEGER RANGE 0 to 9:=0;--定义信号暂存和 SIGNAL Co: STD_LOGIC :='0';--进位位 BEGIN --个位转换为int AA<=CONV_INTEGER(AF); --暂存加数 BB<= CONV_INTEGER(BF);--被加数 CC<=AA+BB;--个位加法运算
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1371
496