50以内的减法及显示电路设计VHDL代码Quartus仿真

名称:50以内的减法及显示电路设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

50以内的减法及显示电路设计

1)基本要求

设计2位数的减法及显示电路,能实现0-50以内的减运算,结果采用数码管显示2)端口定义:

输入被减数个位端口AF(3 downto 0),十位端口AS(3 downto0),减数个位端口BF(3 downto0),十位端口BS(3 downto),输出端口符号显示S(7 downto0).十位效显示SLT(7 downto0).个位显示FLT(7 downto0)

3)实现思路:

(1)减计算原理:分别计算十位、个位的差得到最终的差值

(2)1位数加减原理

定义信号暂存被减数、减数:AA,BB: INTEGER RANGE0to9:='0';

要求.jpg

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

1. 工程文件


2. 程序文件


3. 程序编译


4. RTL图


5. 仿真文件


6. 仿真图

上图仿真了37-24、13-41,24-24三种情况

仿真结果上看,37-24的数码管显示结果为06和4f;06对应数字1,4f对应数字3,故37-24=13,计算正确。13-41,24-24的情况同理。






部分代码展示:

library ieee; 
use ieee.std_logic_1164.all; 
use ieee.std_logic_arith.all; 
use ieee.std_logic_unsigned.all; 
--50以内减法及显示
entity sub_in_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); ----减数十位 
 S : out std_logic_vector(7 downto 0); ----符号显示 
         FLT : out std_logic_vector(7 downto 0); ----输出端口个位
 SLT : out std_logic_vector(7 downto 0) ----输出端口十位
        ); 
 end  sub_in_50; 
 
architecture RTL of sub_in_50 is 
 
signal AF_int,BF_int: INTEGER RANGE 0 to 9:=0;--个位
signal AS_int,BS_int: INTEGER RANGE 0 to 9:=0;--十位
signal AA,BB: INTEGER RANGE 0 to 50:=0;
signal CC: INTEGER RANGE 0 to 50:=0;--差
signal ten_int,one_int: INTEGER RANGE 0 to 9:=0;--差十位和个位
signal Co: STD_LOGIC:='0';--借位
begin
--转换为int类型
AF_int<=Conv_Integer(AF);
BF_int<=Conv_Integer(BF);
AS_int<=Conv_Integer(AS);
BS_int<=Conv_Integer(BS);
--A和B
AA<=AS_int*10+AF_int;
BB<=BS_int*10+BF_int;
Co=BB) ELSE '1';--A>B,没有借位
CC=BB) ELSE (BB-AA);--求差
--计算差的十位
ten_int<=CC/10;--十位
--计算差的个位
one_int<=CC-ten_int*10;--个位
--显示符号
S<=  X"40" WHEN Co='1' ELSE X"00";   --"-"
--显示个位
FLT <=  X"3F" WHEN one_int=0 ELSE    --"0"
X"06" WHEN one_int=1 ELSE    --"1"
X"5B" WHEN one_int=2 ELSE    --"2"
X"4F" WHEN one_int=3 ELSE    --"3"
X"66" WHEN one_int=4 ELSE    --"4"
X"6D" WHEN one_int=5 ELSE    --"5"
X"7D" WHEN one_int=6 ELSE    --"6"
X"07" WHEN one_int=7 ELSE    --"7"
X"7F" WHEN one_int=8 ELSE    --"8"
X"6F" WHEN one_int=9 ELSE    --"9"
X"FF";

 

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 50以内的减法及显示电路设计VHDL代码Quartus仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员