반응형
ALU
산술 논리 장치로 두 숫자의 (덧셈, 뺄셈같은) 산술연산과 (배타적 논리합, 논리곱, 논리합같은) 논리연산을 계산하는 디지털 회로이다. 산술논리장치는 컴퓨터 중앙처리장치의 기본 설계 블록이다.
Mux와 같이 출력신호는 제어신호에 의하여 입력신호 중에 선택된다.
<설계자에 의해 입력과 선택과 출력이 달라질 수 있다 > <ALU구조>
▶ALU dataflow VHDL
library ieee;
use ieee.std_logic_1164.all ;
use ieee.std_logic_unsigned.all; --출력에 A+B 와 같은 +연산을 하기위한 헤더파일
entity ALU is --ALU의 포트선언
port (A,B : in std_logic_vector(3 downto 0); --A와 B는 4비트(3부터0까지내림차순)으로 이루어진 입력로직벡터
S : in std_logic_vector(1 downto 0); -- S는 2비트(1부터0까지 내림차순)으로 이루어진 입력 로직벡터
Y : out std_logic_vector(4 downto 0)); --Y는 5비트(4부터 0까지 내림차순)으로 이루어진 입력 로직 벡터
end ALU;
architecture Dataflow of ALU is --ALU에 관한 자료흐름적모델링
begin
with S select -- 논리식으로 표현하기 편리하므로 S의 신호 병행문 정의
Y <= (('0' & A) + ('0' & B)) when "00", --출력은5비트, 입력 A와 B는 4비트이므로 MSB에 0을 붙여줘야되므로 '0'을 추가해준다
'0' & (A or B) when "01", -- S가 01일시 5비트자리에 0에 A와B의 or연산
'0' & (A and B) when "10", --S가 10일시 5비트자리에 0에 A와B의 and연산결과
'0' & (A xor B) when others; --나머지경우에 5비트자리에 0에 A와 B의 xor 연산결과
end Dataflow;
ALU 결과 및 시뮬레이션
반응형
'VHDL' 카테고리의 다른 글
3x8 Decoder 설계 (0) | 2021.06.08 |
---|---|
조합회로 - Multiplexer(Mux) 4x1,8x1 (0) | 2021.06.08 |
Demultiplexer(Demux) 1x4,1x8 (0) | 2021.06.08 |
조합회로 - 비교기 (자료흐름적 모델링) (0) | 2021.06.08 |
4비트 병렬 가감산기 (0) | 2021.06.08 |