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';

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
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仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 50以内的减法及显示电路设计VHDL代码Quartus仿真