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. 工程文件

Quartus9.0版本


2. 程序文件


3. 程序编译


4. RTL图


5. 仿真文件


6. 仿真图





部分代码展示:

library ieee; 
use ieee.std_logic_1164.all; 
use ieee.std_logic_arith.all; 
use ieee.std_logic_unsigned.all; 
--50以内减法及显示
entity sub is 
    port(
         --clk   : in  std_logic;  --32KHz时钟
 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; 
 
architecture RTL of sub is 
 
signal AF_int,BF_int: INTEGER RANGE 0 to 9:=0;--个位
signal AS_int,BS_int: INTEGER RANGE 0 to 9:=0;--十位
signal A_int,B_int: INTEGER RANGE 0 to 50:=0;
signal sub_int: 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
A_int<=AS_int*10+AF_int;
B_int<=BS_int*10+BF_int;
Co=B_int) ELSE '1';--A>B,没有借位
sub_int=B_int) ELSE (B_int-A_int);--求差
--计算差的十位
ten_int<=sub_int/10;--十位
--计算差的个位
one_int<=sub_int-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,详情咨询客服

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