Combinational Logic Lecture #8.

Slides:



Advertisements
Similar presentations
1 Lecture 13 VHDL 3/16/09. 2 VHDL VHDL is a hardware description language. The behavior of a digital system can be described (specified) by writing a.
Advertisements

Quad 2-to-1 and Quad 4-to-1 Multiplexers Discussion D2.4 Example 7.
History TTL-logic PAL (Programmable Array Logic)
Arbitrary Waveform Discussion 5.5 Example 34.
1 VLSI DESIGN USING VHDL Part II A workshop by Dr. Junaid Ahmed Zubairi.
Top-level VHDL Designs
Generic Multiplexers: Parameters Discussion D2.5 Example 8.
Introduction to VHDL VHDL Tutorial R. E. Haskell and D. M. Hanna T1: Combinational Logic Circuits.
FPGAs and VHDL Lecture L12.1. FPGAs and VHDL Field Programmable Gate Arrays (FPGAs) VHDL –2 x 1 MUX –4 x 1 MUX –An Adder –Binary-to-BCD Converter –A Register.
Introduction to VHDL Multiplexers. Introduction to VHDL VHDL is an acronym for VHSIC (Very High Speed Integrated Circuit) Hardware Description Language.
Introduction to VHDL CSCE 496/896: Embedded Systems Witawas Srisa-an.
Lab 2 4-Bit Adder Digilent Spartan 3 Board Lecture L2.3.
4-to-1 Multiplexer: case Statement Discussion D2.3 Example 6.
DE1 FPGA board and Quartus
Development System using Altium Designer Supervisor : Ina Rivkin Performed by: Fared Ghanayim Jihad Zahdeh Technion – Israel Institute of Technology Department.
FPGAs and VHDL Lecture L13.1 Sections 13.1 – 13.3.
Introduction to VHDL Multiplexers Discussion D1.1.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448.
CSCE 430/830 A Tutorial of Project Tools By Dongyuan Zhan Feb. 4, 2010.
Random-Access Memory Distributed and Block RAM Discussion D10.3 Example 41.
CSET 4650 Field Programmable Logic Devices Dan Solarek VHDL Behavioral & Structural.
 Seattle Pacific University EE Logic System DesignCADNumbers-1 Arithmetic and CAD Tools CAD tools work great with arithmetic functions Adding,subtracting,multiplying,
ENG6090 RCS1 ENG6090 Reconfigurable Computing Systems Hardware Description Languages Part 4: Modeling Dataflow.
1 Combinational Logic Lecture #6. 모바일컴퓨터특강 2 강의순서 Decoder 3x8 Mux 4x1 Mux 8x1 Mux 8x1 4bits Half Adder Full Adder Ripple carry Adder 4-bit Adder.
ENG2410 Digital Design LAB #8 LAB #8 Data Path Design.
ASIC 121: Practical VHDL Digital Design for FPGAs Tutorial 1 September 27, 2006.
VHDL in 1h Martin Schöberl. AK: JVMHWVHDL2 VHDL /= C, Java,… Think in hardware All constructs run concurrent Different from software programming Forget.
VHDL for Combinational Circuits. VHDL We Know Simple assignment statements –f
ENG2410 Digital Design LAB #5 Modular Design and Hierarchy using VHDL.
Introducing the Nexys 2 Board CS 332 – Operating Systems 12/04/2011 by Otto Castell-R.
Combinational Logic Lecture #6.
ECE 331 – Digital System Design Multiplexers and Demultiplexers (Lecture #13)
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
2’s Complement 4-Bit Saturator Discussion D2.8 Lab 2.
4-to-1 Multiplexer: Module Instantiation Discussion D2.2 Example 5.
COE4OI5 Engineering Design Chapter 1: The 15 minutes design.
CS/EE 3700 : Fundamentals of Digital System Design
VHDL의 기본 Lecture #6.
ACANEL VHDL 의 이해와 실습 2000 년 1 학기 Computer Architecture (classes links)
Data Storage VHDL ET062G & ET063G Lecture 4 Najeem Lawal 2012.
1 Sequential Logic Lecture #7. 모바일컴퓨팅특강 2 강의순서 Latch FlipFlop Active-high Clock & asynchronous Clear Active-low Clock & asynchronous Clear Active-high.
VHDL ELEC 311 Digital Logic and Circuits Dr. Ron Hayne Images Courtesy of Cengage Learning.
개발환경의 이해 및 실습 (Quartus II web edition). 2 개발환경의 이해 및 실습 - 강의순서  Starting Quartus II  Design Entry  Project Compilation  Project Simulation  Device.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
Fundamentals of Digital Signal Processing יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב.
1 Introduction to Engineering Spring 2007 Lecture 19: Digital Tools 3.
Hankuk University of Foreign Studies Radio Communication Systems Lab. 1 Digital IC design (8)
An Introduction to V.H.D.L.. Need of a Compiler… main( ) { int x=10,y=20,z; z = x + y ; printf ( “ %d “, z ); getch( ) ; } What’s That ? Give me only.
LAB #5 Modular Design and Hierarchy using VHDL
Combinational logic circuit
Basic Language Concepts
LAB #4 Xilinix ISE Foundation Tools VHDL Design Entry “A Tutorial”
Describing Combinational Logic Using Processes
Introduction to Programmable Logic
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
VHDL Description 1. Behavioral Description (동작묘사)
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
VHDL 1. ver.7a VHDL1 INTRODUCTION TO VHDL (VERY-HIGH-SPEED-INTEGRATED-CIRCUITS HARDWARE DESCRIPTION LANGUAGE) KH WONG (w2 begins) (Some pictures are.
VHDL (VHSIC Hardware Description Language)
Founded in Silicon Valley in 1984
Data Flow Description of Combinational-Circuit Building Blocks
Modeling of Circuits with a Regular Structure
Data Flow Description of Combinational-Circuit Building Blocks
Modeling of Circuits with a Regular Structure
4-Input Gates VHDL for Loops
디 지 털 시 스 템 설 계 UP2 Kit를 이용한 카운터 설계
Digital Logic with VHDL
Presentation transcript:

Combinational Logic Lecture #8

Combination Logic - 강의순서 Decoder 3x8 Process – Case Statement Mux 4x1 Signal Assignment, Conditional Signal Assignment, Selected Process – if Statement Mux 8x1 Mixed Modeling Mux 8x1 4bits Process – Case Statement, Constants이용 4 bits Adder Combinational Logic

Combination Logic – Decoder 3x8 (CASE) library ieee; use ieee.std_logic_1164.all; entity decoder38_proc is port( d2, d1, d0 : in std_logic; y0,y1,y2,y3,y4,y5,y6,y7 : out std_logic); end decoder38_proc; architecture xxx of decoder38_proc is signal d : std_logic_vector(2 downto 0); signal t : std_logic_vector( 0 to 7); begin d <= d2&d1&d0; process(d) case d is when "000" => t<="10000000"; when "001" => t<="01000000"; when "010" => t<="00100000"; when "011" => t<="00010000"; when "100" => t<="00001000"; when "101" => t<="00000100"; when "110" => t<="00000010"; when others => t<="00000001"; end case; end process; y0 <= t(0); y1 <= t(1); y2 <= t(2); y3 <= t(3); y4 <= t(4); y5 <= t(5); y6 <= t(6); y7 <= t(7); end xxx; 회로보다는 설계사양에 관심을 둔 설계방식. d(2) <= d2; d(1) <= d1; d(0) <= d0; 같은 표현 Combinational Logic

Combination Logic – Decoder 3x8 (CASE) Timing Simulation Result Combinational Logic

Combination Logic – Mux 4x1 (Signal Assignment, Conditional) library ieee; use ieee.std_logic_1164.all; entity mux41_ when is port( a, b, c, d: in std_logic; s : in std_logic_vector(1 downto 0); y : out std_logic); end mux41_ when; architecture a of mux41_when is BEGIN y <= a when (s=“00”) else b when (s=“01”) else c when (s=“10”) else d; END a; Combinational Logic

Combination Logic – Mux 4x1 (Signal Assignment, Selected) library ieee; use ieee.std_logic_1164.all; entity mux41_with is port( a, b, c, d: in std_logic; s : in std_logic_vector(1 downto 0); y : out std_logic); end mux41_with; architecture a of mux41_with is BEGIN WITH s SELECT y<= a WHEN "00", b WHEN "01", c WHEN "10", d WHEN others; END a; Combinational Logic

Combination Logic – Mux 4x1(IF) library ieee; use ieee.std_logic_1164.all; entity mux41_if_proc is port( a,b,c,d : in std_logic; s : in std_logic_vector(1 downto 0); y : out std_logic); end mux41_if_proc; architecture proc of mux41_if_proc is begin process(a,b,c,d,s) if( s="00") then y<=a; elsif( s="01") then y<=b; elsif( s="10") then y<=c; else y<=d; end if; end process; end proc; Combinational Logic

Combination Logic – Mux 4x1(CASE) library ieee; use ieee.std_logic_1164.all; entity mux41_case_proc is port( a,b,c,d : in std_logic; s : in std_logic_vector(1 downto 0); y : out std_logic); end mux41_case_proc; architecture proc of mux41_case_proc is begin process(a,b,c,d,s) case s is when "00" => y<=a; when "01" => y<=b; when "10" => y<=c; when others => y<=d; end case; end process; end proc; Combinational Logic

Combination Logic - Mux 8X1 ( Mixed Modeling) Library ieee; Use ieee.std_logic_1164.all; entity mux8_1 is port( a, b, c, d, e, f, g, h : in std_logic; s2, s1, s0 : in std_logic; y : out std_logic); end mux8_1; architecture xxx of mux8_1 is component decoder3_8 port( a, b, c : in std_logic; d0,d1,d2,d3,d4,d5,d6,d7 : out std_logic); end component; signal t : std_logic_vector(7 downto 0); signal d0,d1,d2,d3,d4,d5,d6,d7 : std_logic; begin U1: decoder3_8 port map( s2,s1,s0,d0,d1,d2,d3,d4,d5,d6,d7); t(0) <= a and d0; t(1) <= b and d1; t(2) <= c and d2; t(3) <= d and d3; t(4) <= e and d4; t(5) <= f and d5; t(6) <= g and d6; t(7) <= h and d7; y <= t(0) or t(1) or t(2) or t(3) or t(4) or t(5) or t(6) or t(7); end xxx; t(0) t(1) t(2) t(3) t(4) t(5) t(6) t(7) Decoder3_8.vhd는 미리 작성된 상태임 Mixed Modeling : structure + dataflow Combinational Logic

Combination Logic – Mux 8X1 (Constants) library ieee; use ieee.std_logic_1164.all; entity mux8_1_proc is port( a,b,c,d,e,f,g,h : in std_logic; s2, s1, s0 : in std_logic; y : out std_logic); end mux8_1_proc; architecture proc of mux8_1_proc is constant bits3_0 : std_logic_vector(2 downto 0) := "000"; constant bits3_1 : std_logic_vector(2 downto 0) := "001"; constant bits3_2 : std_logic_vector(2 downto 0) := "010"; constant bits3_3 : std_logic_vector(2 downto 0) := "011"; constant bits3_4 : std_logic_vector(2 downto 0) := "100"; constant bits3_5 : std_logic_vector(2 downto 0) := "101"; constant bits3_6 : std_logic_vector(2 downto 0) := "110"; constant bits3_7 : std_logic_vector(2 downto 0) := "111"; begin process(a,b,c,d,e,f,g,h,s2,s1,s0) variable sel : std_logic_vector(2 downto 0); sel := s2 & s1 & s0; case sel is when bits3_0 => y<= a; when bits3_1 => y<= b; when bits3_2 => y<= c; when bits3_3 => y<= d; when bits3_4 => y<= e; when bits3_5 => y<= f; when bits3_6 => y<= g; when others => y<= h; end case; end process; end proc; sel(2) := s2; sel(1) := s1; sel(0) := s0; 같은 표현 Combinational Logic

Combination Logic – Mux 8x1 4bits (Signal Assignment, Selected) library ieee; use ieee.std_logic_1164.all; entity mux81_4bits_with is port( a, b, c, d, e, f, g, h : in std_logic_vector(3 downto 0); s2, s1, s0 : in std_logic; y : out std_logic_vector(3 downto 0) ); end mux81_4bits_with; architecture a of mux81_4bits_with is signal s : std_logic_vector(2 downto 0); BEGIN s <= s2 & s1 & s0; -- s(2)<=s2; s(1)<=s1;s(0)<=s0; WITH s SELECT y <= a WHEN "000", b WHEN "001", c WHEN "010", d WHEN "011", e WHEN "100", f WHEN "101", g WHEN "110", h WHEN others; END a; Combinational Logic

Combination Logic – Mux 8x1 4bits (CASE) library ieee; use ieee.std_logic_1164.all; entity mux81_4bits_proc is port( a,b,c,d,e,f,g,h : in std_logic_vector(3 downto 0); s2, s1, s0 : in std_logic; y : out std_logic_vector(3 downto 0)); end mux81_4bits_proc; architecture proc of mux81_4bits_proc is signal sel : std_logic_vector(2 downto 0); begin sel <= s2 & s1 & s0; process(a,b,c,d,e,f,g,h,sel) case sel is when "000" => y<= a; when "001" => y<= b; when "010" => y<= c; when "011" => y<= d; when "100" => y<= e; when "101" => y<= f; when "110" => y<= g; when others => y<= h; end case; end process; end proc; Combinational Logic

Combination Logic – 4 bits Adder library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity add_4bits_proc is port( a, b : in std_logic_vector(3 downto 0); s : out std_logic_vector(3 downto 0) ); end add_4bits_proc; architecture a of add_4bits_proc is begin s <= a+b; end a; + 연산자가 사용될 때 꼭 사용. Combinational Logic

실습장비 PXA255-FPGA에 대한 개요 및 예제 실습

내용 순서 PXA255-FPGA BLOCK DIAGRAM PXA255-FPGA SPEC PXA255-FPGA 사용 방법 PXA255-FPGA 예제 실습(LED) Combinational Logic

PXA255-FPGA BLOCK DIAGRAM Combinational Logic

PXA255-FPGA SPEC PXA255-FPGA BOARD 사양 FPGA Altera cyclone EP1C6 LOGIC ELEMENTS 5980 LOGIC GATE 120000 Logic Gate RAM BIT 92160 Bit 외부 CPU PXA255 외부 INTERFACE 32 BIT address/data bus 입력 I/O PUSH S/W, DIP S/W, IMAGE SENSOR 출력 I/O TEXT LCD, LED, 7SEGMENT, BUZZER, DOTMATRIX, VGA Combinational Logic

VGA TEXT-LCD I/O 100PIN FPGA JTAG PORT AD/DA PORT PUSH S/W LED EXTERN I/O STEP MOTOR CAMERA CONN DOT BUZZER DIP S/W 7-SEG Combinational Logic

7-SEG,BUZZER,CAMERA,MOTOR, PXA255-FPGA 동작방법 (1) PXA255-PRO보드와 PXA255-FPGA보드와의 연동방법 PXA255 Main Board FPGA I/O 주변장치 LED,FND,DOT MATRIX,LCD, 7-SEG,BUZZER,CAMERA,MOTOR, SENSOR(온도,기울기,조도) ADDRESS BUS CONTORL SIGNAL DATA BUS PXA255-FPGA4 보드 Combinational Logic

PXA255-FPGA 동작방법 (2) PXA255 SRAM Write timing Diagram(PXA255 DATASHEET) Combinational Logic

PXA255-FPGA 동작방법 (3) PXA255 memory map Combinational Logic

PXA255-FPGA 동작방법 (4) 디바이스 메모리맵 : Combinational Logic

7-SEG,BUZZER,CAMERA,MOTOR, PXA255-FPGA 동작방법 (5) PXA255-FPGA보드 단독 동작 모드 FPGA I/O 주변장치 LED,FND,DOT MATRIX,LCD, 7-SEG,BUZZER,CAMERA,MOTOR, SENSOR(온도,기울기,조도) PXA255-FPGA4 보드 POWER JACK Combinational Logic

PXA255-FPGA 동작방법 (6) DIP SW을 이용한 동작 모드 선택 PXA255-PRO 보드와 PXA255-FPGA보드와의 연동 방법 PXA255-FPGA보드 단독 동작 모드 Combinational Logic

PXA255-FPGA 예제 프로그램(LED) 개요 system 요구사항 PXA255-FPGA를 이용하여 LED에 대한 동작을 이해하고 디바이스 드라이버를 작성하여 LED를 제어 한다 system 요구사항 Hardware 요구사항 PXA255-PRO    PXA255-FPGA ByteBlaster Interface Cable Software 요구사항 Quartus II V2.2이상 사용 Hardware Description Language VHDL Combinational Logic

PXA255-FPGA 예제 프로그램(LED) FPGA - LED 회로도 구성 Combinational Logic

PXA255-FPGA 예제 프로그램(LED) Combinational Logic

Quartus II Project 파일 생성 (1) New Project Wizard를 통한 Quartus Project 생성하기 File 메뉴에서 New Project Wizard를 실행하여 새로운 프로젝트를 만들어보자. Combinational Logic

Quartus II Project 파일 생성 (2) New Project Wizard ① Project를 설치할 경로 와 프로젝트의 이름과 top-level entity 이름을 지정하는 부분이 있다 Combinational Logic

Quartus II Project 파일 생성 (3) New Project Wizard ② 오른쪽의 그림은 다음 단계인 설계된 파일이 있으면 추가 하는 단계 추가할 파일이 프로젝트 디렉토리에 있다면 [ADD ALL] 버튼을 클릭하면 모두 추가 [...] 버튼을 클릭하여 그림과 같이 4개의  파일을 추가 [Next]버튼을 눌러 다음 설정으로 이동 Combinational Logic

Quartus II Project 파일 생성 (4) New Project Wizard ③ EDA Tool 에 대한 설정을 하는 부분 Thirth party EDA tool을 사용한다면 설정하고, 사용하지 않는다면 [Next]버튼을 눌러 다음 설정으로 이동 Combinational Logic

Quartus II Project 파일 생성 (5) New Project Wizard ④ Device Family를 설정하는 부분 PXA255-FPGA보드는 Cyclone을 사용하고 있으므로 Cyclone으로 설정 Combinational Logic

Quartus II Project 파일 생성 (6) New Project Wizard ⑤ PXA255-FPGA에는 EP1C12Q240C8을 사용하고 있으므로 해당 Device를 선택 오른쪽 메뉴의 Filter사용 하면 쉽게 선택할 수 있다 Combinational Logic

Quartus II Project 파일 생성 (7) New Project Wizard ⑥ 지금까지 설정을 확인하는 단계 프로젝트경로와 프로젝트 이름, top-level design entity 이름, 추가한 파일의 개수를 확인 Combinational Logic

Quartus II Project 파일 생성 (8) Combinational Logic

Quartus II Project 파일 생성 (9) Pin Assignment Pin Assign File 수정 - io_top.csf 파일을 열어서 옆 그림과 같이 CHIP (io_top) 섹션에 핀 매핑에 대한 정보를 수정 Quartus II 에는 핀을 매핑 할 수 있는 별도의 메뉴가 존재하지만 io_top.csf 파일을 수정하면 보다 손쉽게 매핑 할 수 있다   CHIP(io_top)  {          LED[0] : LOCATION = Pin_1;          LED[1] : LOCATION = Pin_2;          LED[2] : LOCATION = Pin_3;          LED[3] : LOCATION = Pin_4;          LED[4] : LOCATION = Pin_5;          LED[5] : LOCATION = Pin_6;          LED[6] : LOCATION = Pin_7;          LED[7] : LOCATION = Pin_8;    MAIN_CLK1 : LOCATION = Pin_29;                          ...... 이하 계속 .......     Combinational Logic

Quartus II Project 파일 생성 (10) 사용하지 않는 핀들에 대한 설정 Device 설정 창에서 Device & Pin Options을 선택 Combinational Logic

Quartus II Project 파일 생성 (11) Unused Pin에 대한 설정 Reserve all unused pins에서 As Input, tri stated를 선택 외부에 아무런 영향을 주지 않기 위함 Combinational Logic

Quartus II Project 파일 생성 (12) Configuration에 대한 설정 그림과 같이 Configuration scheme와 device를 설정 Combinational Logic

Quartus II Project 파일 생성 (13) 기타 설정 General 탭에서  Auto-restart configuration after error을 선택 FPGA에서 에러가 발생하면 자동으로 다시 Configuration하게 설정 Combinational Logic

Quartus II Project 파일 생성 (14) Compilation 지금까지의 설정이 정상적으로 이루어졌다면 Processing 메뉴에서 Start Compilation을 실행 컴파일이 완료되면 ‘Full compilation was successful‘ 이라는 메시지를 보여주며 컴파일이 끝나게 된다 Combinational Logic

Quartus II Project 파일 생성 (15) Configuration 지금까지의 과정이 모두 끝났다면 FPGA로 Configuration을 하여야 한다 Programmer 실행 - EPC2에 다운로드 하거나 FPGA에 Configuration 하기 위해서 Programmer를 실행 Combinational Logic

Quartus II Project 파일 생성 (16) Configuration 파일 불러오기 Byteblaster 케이블이 JTAG 포트에 연결된 상태에서 [Auto Detect] 를 하면 EPC2와 EP1C6 두 개의 장치를 검출 <none>를 더블 클릭하여 EPC2에는 io_top.pof 파일을, EP1C6에는 io_top.sof파일을 설정한다 Combinational Logic

Quartus II Project 파일 생성 (17) Configuration Program/Configure에 체크 옵션에 체크를 한다 [Start]버튼을 클릭하면 체크한 항목에 대해서만 Download 및 Configuration을 수행한다 [Start]버튼을 클릭하여 실행한다. Combinational Logic