VHDL을 이용한 16bit ALU 설계 및 파형
*정*
다운로드
장바구니
소개글
Xilinx의 vhdl을 이용한 16bit ALU 설계입니다.full adder, shift L,R, MUX 4x1 등을 이용, 산술 연산 회로부와 논리 연산 회로부를 설계하여 완성시켜 나가는 방식으로, 주석과 함께 모든 source가 작성되었습니다. 또한 RTL, test bench source, 파형도 작성하였습니다.
vhdl을 공부하시는 중이라면 어느정도 도움이 되리라 생각됩니다.
목차
- 16 bit ALU1. ALU main Module Source
2. ALU main RTL
3. Arithmetic Circuit (arith_circuit0) Source
4. 16bit full adder Source in Arithmetic Circuit
5. Logic circuit (logic_circuit0) Source
6. Shift Right (shiftRight) Source
7. Shift Left (shiftLeft) Source
8. MUX 4x1 (MUX) Source
9. Test Bench ALU Source
10. 파형
본문내용
산술연산 회로전가산기와 멀티플렉서로 이루어진 회로로 두 개의 입력 A, B와 출력 D가 존재
논리연산 회로
게이트와 멀티플렉서로 구성되었고
각 게이트가 정해진 논리 연산을 수행하고 이 결과들 중에서 하나를 멀티플렉서로 선택하여 최종 출력값을 결정
아래와 같이 동작하는 16bit ALU를 설계한다.
<ALU main Module Source>
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity ALU is
Port ( clk : in STD_LOGIC; --ALU 동작클럭
A : in STD_LOGIC_VECTOR (15 downto 0); --16bit 입력 data A
B : in STD_LOGIC_VECTOR (15 downto 0); --16bit 입력 data B
S3 : in STD_LOGIC; --ALU Operation select값 S3
S2 : in STD_LOGIC; --ALU Operation select값 S2
S1 : in STD_LOGIC; --ALU Operation select값 S1
S0 : in STD_LOGIC; --ALU Operation select값 S0
c_in : in STD_LOGIC; --ALU Operation select값 c in
c_out : out STD_LOGIC; --ALU 산술연산시 가산기C-out값
ALUout : out STD_LOGIC_VECTOR (15 downto 0)); --ALU 출력값
end ALU;
architecture ALU16bit of ALU is
component MUX4to1 --MUX 4x1
Port ( sel : in STD_LOGIC_VECTOR (1 downto 0);
In_0 : in STD_LOGIC_VECTOR (15 downto 0);
In_1 : in STD_LOGIC_VECTOR (15 downto 0);
In_2 : in STD_LOGIC_VECTOR (15 downto 0);
In_3 : in STD_LOGIC_VECTOR (15 downto 0);
Output : out STD_LOGIC_VECTOR (15 downto 0));
end component;
component Arith_Circuit --산술연산부
Port ( AS_1 : in STD_LOGIC;