名称: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
344