جمع کننده BCD در FPGA

جمع کننده BCD در FPGA به زبان VHDL

در برنامه زیر

cin :کری ورودی

cout :کری خروجی

A,B:ورودی

s: حاصل جمع خروجی می باشد

دقت شود که برنامه شامل دو قسمت است

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.std_logic_unsigned.all;

entity  EPC is
Port ( IN1 : in  STD_LOGIC_VECTOR (3 downto 0);
Cin : in  STD_LOGIC;
S     : out  STD_LOGIC_VECTOR (3 downto 0);
Cout : out  STD_LOGIC);
end EPC;

architecture Behavioral of EPC is

signal temp:integer range 0 to 15;
begin
temp<=conv_integer(IN1);
S <= IN1 when temp < 9 else IN1 + “0110”;
Cout<=        Cin  when temp<9 else   ‘1’ ;
end Behavioral;

BCD MODUL

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.std_logic_unsigned.all;

entity BCD_adder is
Port ( A : in  STD_LOGIC_VECTOR(3 downto 0);
B : in  STD_LOGIC_VECTOR(3 downto 0);
S : out  STD_LOGIC_VECTOR(3 downto 0);
Cin : in  STD_LOGIC;
Cout : out  STD_LOGIC);
end BCD_adder;

architecture Behavioral of BCD_adder is

COMPONENT N_BIT_ADDER
GENERIC(N:INTEGER:=5);
PORT( Cin : IN std_logic;
A : IN std_logic_vector(N-1 downto 0);
B : IN std_logic_vector(N-1 downto 0);
S : OUT std_logic_vector(N-1 downto 0);
Cout : OUT std_logic );
END COMPONENT;

COMPONENT EPC
PORT( IN1 : IN std_logic_vector(3 downto 0);
Cin : IN std_logic;
S : OUT std_logic_vector(3 downto 0);
Cout : OUT std_logic );
END COMPONENT;

signal T:std_logic_vector(3 downto 0);
signal C: std_logic;

begin
BIT_ADDER: N_BIT_ADDER
GENERIC MAP(N=>4)
PORT MAP( Cin =>Cin , A => A, B => B, S => T, Cout =>C );
ADJUST_MODE:EPC PORT MAP( IN1 => T, Cin => C, S =>S , Cout => Cout );
end Behavioral;

 

درباره ی mr ti

همچنین ببینید

مولد پالس برای درایور استپر موتور

مولد پالس استپر موتور معرفی شده در این پروژه یک راه حل آسان برای کنترل …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

13 + 17 =