기초 두원공과대학정보통신미디어계열이무영
2! 담당 : 이무영, 본관 325 호, mylee@doowon.ac.kr! 강의교재! 3 월 : 기존교재복습 ( 기초와응용, 홍릉과학출판사, 이대영외 3 명공저 )! 4 월이후 : 추후공지! 실습도구! 한백전자 HBE-DTK-240! www.hanback.co.kr ( 디지털 -FPGA) 자료참고할것임.! 천안공대류장열교수님온라인컨텐츠 (elecpia.cntc.ac.kr)! kr.edu.yahoo.com : 무료강좌 103번 구문기초 ( 이탁훈 )! Doowon KISS의디지털회로설계강좌방적극활용 ( 강의자료및보고서, 질문등적극활용바람 )
3! (Very high speed integrated circuit Hardware Description Language)! 하드웨어의설계를회로도를그리는방법이아닌기술하는언어! 복잡해지고고집적화되는하드웨어설계추세에꼭필요한선택! 디지털공학의개념이필요.! 언어를이해하면비교적쉽게하드웨어의설계가가능.
하드웨어의설계 4! 하드웨어설계방법의변화! 기본소자들 (Tr. 레벨 ) 의기판위에조립하는형태 (70 년대 )! IC(Integrated Circuit)-Gate 레벨의논리회로설계 (80 년대 )! 고집적화되고기능이다양하게분화된 IC 이용가능! 엔지니어가직접논리회로의설계가가능한 IC(PLD, FPGA-ALTERA, XILINKS, Lattice사등 ) 의이용증가 (90년대)! ASIC(Application Specific IC), SoC(System on Chip) 등의형태 IC 활성화
의출현 5! 하드웨어를모델링, 문서화, 합성, 검증, 제작등에사용할수있는표준화된 HDL 필요! 미국방성 :! 제품의개발, 생산및유지 보수등의문제! 쉽게해석할수있는하드웨어의문서화요구! VHSIC(Very High Speed IC) project 의결과물! 1987.12 월 : IEEE-1076, IEEE 표준 탄생! 현재미국방성은관련프로젝트및 ASIC 에 의사용을의무화! Synopsys, Cadence, ViewLogic, Mentor 사등이지원소프트웨어공급
의특징 6! 표준화된 HDL :! 설계된하드웨어의호환성보장! 구현에 CMOS, nmos, GaAs 등에관계없음! 라이브러리의사용이특정회사에국한되지않고자유로움, 변경용이! 설계를위한우수한하드웨어기술 ( 묘사 ) 능력! 시스템레벨에서게이트레벨까지하드웨어의동작적및구조적기술을할수있도록..! 시뮬레이션용이, 다양한지연, 물리적인양의표현, Concurrent signal assignment, resolution function등의편리한기술도구들이포함.! 아날로그및아날로그와디지털의혼합 에대한기술도시도되고있음.
의특징 7! 다양한기능제공언어! 원래는회로의문서화및시뮬레이션을위한언어! 합성을위한언어로사용됨.! 고급컴퓨터언어가제공하는다양한기능을갖춤! 디지털회로설계에만이용가능! 하드웨어설계분야에서사용자가증가! 합성도구 (Synthesis tool) 에대한지원이부족
의표현방법 8! Modelling : 하드웨어표현방법! 동작적 (Behavioral) 모델링 : 입력에따른출력결과만을고려한기술, process 문사용! 구조적 (Structural) 모델링 : 모든회로의컴포넌트및상호연결기술! 데이터흐름 (Data flow) 모델링 : signal 및제어의흐름을기술, 입력에서출력까지의경로의표현위주! 모델링의 3 가지방법을혼합하여하드웨어표현및시뮬레이션, 합성가능
의모델링예 9! 모델! Entity declaration! Component 입출력기술! 1개의 entity declaration! Architecture body! 내부적인요소나기술! 여러개의architecture body가존재할수있음.! 하나의 entity 선언에대해서동작적, 데이터플로우, 구조적에따라다른 architecture body 가올수있다.
의모델링예 (OR) 10 -- Entity declaration Entity OR2 is port(i1, I2 : in bit; O : out bit); End OR2; I1 I2 O --Architecture body Architecture Behavioral_Description of OR2 is Begin process begin if (I1= 0 ) and (I2= 0 ) then O <= 0 after 2ns; else O <= 1 after 2ns; end if; wait on I1, I2; end process; End Behavioral_Description;
의모델링예 (OR) 11 -- Entity declaration Entity OR2 is port(i1, I2 : in bit; O : out bit); End OR2; --Architecture body Architecture Dataflow_Description of OR2 is Begin begin O2 <= I1 or I2 after 2ns; End Dataflow_Description;
의모델링예 ( 반가산기 ) 12 -- Entity declaration Entity Half_Adder is port(a, B : in bit; Sum, Carry : out bit); End Half_Adder; --Architecture body --(Behavioral description example) Architecture Beh_Des of Half_Adder is Begin process begin if (A=B) then Sum <= 0 after 2ns; else Sum <= 1 after 2ns; end if; -- 여기는 Sum출력에대한기술 A B Carry Sum 반가산기 (Half Adder)
의모델링예 ( 반가산기 ) 13 A B Carry Sum 반가산기 (Half Adder) ( 이어서 ) if (A= 1 ) and (B= 1 ) then Carry <= 1 after 2ns; else Carry <= 0 after 2ns; end if; -- 여기는 Carry출력에대한기술 wait on A, B; end process; End Beh_Des;
의모델링예 ( 반가산기 ) 14 -- Entity declaration Entity Half_Adder is port(a, B : in bit; Sum, Carry : out bit); End Half_Adder; A Carry B Sum 반가산기 (Half Adder) --Architecture body --(Data flow description example) Architecture Dataflow_Des of Half_Adder is Begin Sum <= A xor B after 2ns; Carry <= A and B after 2ns; End Dataflow_Des;
의모델링예 ( 전가산기 ) 15 -- Entity declaration Entity Full_Adder is port(x, Y, C_in : in bit; S_out, C_out : out bit); End Full_Adder; --Architecture body --(Behavioral description example) Architecture Beh_Des of Full_Adder is Begin process(x, Y, C_in) variable I:integer; begin X C_out Y C_in S_out 전가산기 (Full Adder)
의모델링예 ( 전가산기 ) 16 변수의설정 I:=0; if X= 1 then I:=I+1; end if; if Y= 1 then I:=I+1; end if; if C_in= 1 then I:=I+1; end if; if (I=0) or (I=2) then S_out<= 0 after 2ns; else S_out<= 1 after 2ns; end if; 비교문 if (I=0) or (I=1) then C_out<= 0 after 2ns; else S_out<= 1 after 2ns; end if; 신호의설정 end process; End Beh_Des _Des; X C_out Y C_in S_out 전가산기 (Full Adder)
의모델링예 ( 전가산기 ) 17 -- Entity declaration Entity Full_Adder is port(x, Y, C_in : in bit; S_out, C_out : out bit); End Full_Adder; X C_out --Architecture body --(Dataflow description example) Architecture Dataflow_Des of Full_Adder is Begin S_out <= X xor Y xor C_in after 2ns; Y C_in S_out 전가산기 (Full Adder) C_out <= (X and Y) or (X and C_in) or (Y and C_in) after 2ns; End Dataflow_Des;
의모델링예 ( 전가산기 ) 18! 전가산기는반가산기 2 개를이용하여구현가능 X A S1(:=t_s) S_out Y B HA1 C1(:=t_c1) A S2 C_in B HA2 C2(:=t_c2) C_out 전가산기 (Full Adder)
의모델링예 ( 전가산기 ) 19 -- Entity declaration Entity Full_Adder is port(x, Y, C_in : in bit; S_out, C_out : out bit); End Full_Adder; --Architecture body Architecture Structural_Des of Full_Adder is -- declaration of local signals signal t_s, t_c1, t_c2: Bit -- component declarations component OR2 port(i1, I2: in Bit; O : out Bit); end component;
의모델링예 ( 전가산기 ) 20 component Half_Adder port(a, B: in Bit; S, Carry : out Bit); begin -- position association ( 위치결합 ) example HA1 : Half_Adder port map (X, Y, t_s, t_c1); HA2 : Half_Adder port map (t_s, C_in, S_out, t_c2); ORG : OR2 port map (t_c1, t_c2, C_out); end Structural_Des;
의모델링예 ( 전가산기 ) 21 component Half_Adder port(a, B: in Bit; Sum, Carry : out Bit); begin -- named association ( 이름결합 ) example HA1 : Half_Adder port map (A=>X, B=>Y, Sum=>t_s, Carry=>t_c1); HA2 : Half_Adder port map (A=>t_s, B=>C_in, Sum=>S_out, Carry=>t_c2); ORG : OR2 port map (I1=>t_c1, I2=>t_c2, O=>C_out); end Structural_Des;
디지털회로기초 HW1 22! 야후무료강의듣기! kr.edu.yahoo.com : 무료강좌 103 번 구문기초 ( 이탁훈 )! 학습방에 4 개의강좌자료가있음.! 강좌를보기위해서는 4 개의강좌중 1 개로들어가서전용 Viewer(GVA2000) 를다운로드해서설치해야함.! 강좌를다운로드해서듣기로해서자기컴퓨터로다운로드후듣는것이좋음! 4 개의강좌를모두듣기! 1 개의강좌당 A4 1 장씩강의내용정리해서제출! 강의내용정리는강의도중말로설명한것위주로작성할것.