Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programmable Logic Device

Similar presentations


Presentation on theme: "Programmable Logic Device"— Presentation transcript:

1 Programmable Logic Device
메모리 RAM(랜덤 액세스 메모리) : 읽기와 쓰기 동작 가능 ROM(읽기 전용 메모리) : 읽기 동작만 가능 프로그래머블 논리 장치 (PLDs); PROM(프로그래머블 ROM) PLA(프로그래머블 논리 어레이) PAL(프로그래머블 논리 어레이 논리) FPGA(필드 프로그래머블 게이트 어레이)

2 메모리의 유형 랜덤 액세스 메모리 –각각의 워드는 고유한 위치를 가지고 있으며, 위치에 상관없이 액세스 시간은 동일함.
랜덤 액세스 메모리 –각각의 워드는 고유한 위치를 가지고 있으며, 위치에 상관없이 액세스 시간은 동일함. 순차 액세스 메모리-워드를 액세스 하는데 걸리는 시간은 읽기 헤드 위치에 좌우됨. (자기 디스크 혹은 테이프) 휘발성 –전원이 꺼지면 저장된 정보를 잃어버린다. 비휘발성-컴퓨터가 꺼진 후에도 저장된 정보를 잃어버리지 않음. 예) 마그네틱 디스크, ROM 정적 RAM-저장된 정보는 전원이 장치에 인가될 때만 유효하여 사용하기가 쉽고, 읽기, 쓰기 주기가 짧음. (SRAM) 동적 RAM-캐패시터에 저장된 전하는 시간이 지나면 방전되므로 주기적으로 재충전해야 하며 전력소모가 작고, 많은 저장 공간을 제공한다. (DRAM)

3 랜덤 액세스 메모리 (RAM) ▪ RAM은 컴퓨터에서 프로그램과 데이터의 일시적인 저장을 위해 사용
▪ 데이터의 빠른 읽고 쓰기 기능 RAM의 종류 1. SRAM (Static RAM) 2. DRAM (Dynamic RAM) 3. SDRAM (Synchronous DRAM) 4. DDR SDRAM (Double Data Rate SDRAM) 5. VRAM (Video RAM)

4 SRAM (Static RAM) 의 특징 ▪ 휘발성이기는 하나 전원을 공급하는 동안 안정하게 데이터를 저장하는 정적인 RAM
▪ 메모리 셀 : 플립플롭 (1비트 데이터 저장 => 4~6개 트랜지스터 사용) ▪ DRAM에 비해 속도가 빠름. ▪ 메모리 관련 회로가 간단 ▪ 집적도가 낮고, 소비전력이 크며, 가격이 비싸다 ▪ 기기제어용(주기억용량이 비교적 적음), 단일보드 컴퓨터에 많이 사용 SRAM의 내부구조 (6개의 TR로 구성)

5 SRAM (Static RAM) 의 종류 ▪ Async SRAM (Asynchronous SRAM)
-386에 L2 캐시로 장착한 이래로 오랫동안 사용한 캐시 램 -CPU 클럭과 비동기적으로 작동 -속도 : 20, 15, 12ns ▪ Sync SRAM (Synchronous SRAM) -클럭과 데이터의 동기화 가능 -속도 : 8.5 ~ 12ns ▪ PB SRAM (Pipelined Burst SRAM) -파이프 라이닝으로 데이터를 전송하며 현재 메인보드 캐시로 가장 많이 사용되는 메모리 -메인보드 캐시로 많이 사용되고 있는 메모리 -속도 : 4.5 ~ 8ns

6 DRAM (Static RAM) 의 특징 ▪ 전원이 공급되더라도 주기적 리프래시를 해주지 않으며 데이터가 소실되는 동적인 RAM ▪ 메모리 셀 : 캐패시터 ▪ 캐패시터의 경우 완전히 절연이 되지 않아 내부 전하를 잃어버림 => 리프래시 필요. ▪ DRAM은 임의의 액세스에 대해 고속으로 읽기, 쓰기가 가능하며, 읽고 쓰는데 걸리는 시간은 거의 같다. ▪ 리프래시 회로로 인해 회성 구성이 복잡해지지만 가격 면에서 저렴 ▪ 집적도 높음. 소비전력이 상대적으로 적음. ▪ 범용 컴퓨터의 주기억 장치로 사용 DRAM의 내부구조 (1개의 TR과 C로 구성)

7 DRAM (Dynmic RAM) 의 종류 ▪ FPM RAM (Fast Page Mode RAM)
- EDO 램이 나오기 전 꽤 많이 사용 - 접근속도 : 60ns ~ 120ns ▪ EDO RAM (Extend Data Out RAM) - 초기화 바로 직전 이용했던 메모리 주소 기억, CPU가 데이터를 찾을 때 참고하기 때문에 작업속도가 빠르다. - CPU 버스속도가 66MHz 이상일 때 제대로 작동 ▪ BEDO RAM (Burst Extended Data Out RAM) - Burstring 기술을 이용, 빠르게 데이터를 처리 -SM램보다 싸고 EDO램보다 빠르다

8 DRAM SRAM Refresh 주기적 필요 없다 액세스 주기 느리다 빠르다 회로구조 단순하다 복잡하다 칩크기 작다 크다 가격
SRAM과 DRAM (Dynmic RAM) 의 비교 DRAM SRAM Refresh 주기적 필요 없다 액세스 주기 느리다 빠르다 회로구조 단순하다 복잡하다 칩크기 작다 크다 가격 싸다 비싸다 용도 일반메모리 캐시메모리

9 기타 RAM의 특성 SDRAM (Synchronous DRAM)
▪ High-speed Dynamic Random Access Memory. ▪ 최대한 Bus Clock에 동기되어 동작 DDR SDRAM ▪ Synchronous DRAM의 일종 ▪ 필요성 :펜티엄4의 대역폭 3.2GB/s 200Mhz이상으로 작동하는 DDR 메모리가 필요 ▪ Dual-Edge Clock System으로 같은 동작 주파수 대비 2배의 성능 향상 (SDRAM은 Single-Edge Clock System) ▪ Dual Edge Clock System을 위해 주(Master)클럭 외에 부(Slave)클럭 필요. 두 클럭은 1/4 정도의 시간차를 두고 엇갈려 주어지게 된다. VRAM ▪ 많은 수의 Pixel 요구 => 많은 메모리 요구( 1280 x 1024 x 32 bits/pixel => 5.1Mb ) 에 적합하게 설계 ▪ 빠른 입출력 속도를 가짐 (고속처리, 듀얼포트, 파이프라인)

10 랜덤 액세스 메모리 (RAM)의 메모리 셀 어드레스 선은 특정한 워드를 선택한다. 워드는 정보저장의 최소 단위
어드레스 선은 특정한 워드를 선택한다. 워드는 정보저장의 최소 단위 워드는 일반적으로 8bit 의 배수로 결정 디코더가 어드레스를 받아 특정한 워드를 선택하는 데 필요한 경로를 제공한다. Write : 데이터를 메모리에 전달 Read : 데이터를 메모리로 부터 전송 메모리 용량은 : 워드수와 워드당 비트 수로 결정된다. Memory 용량

11 1024x16 메모리 1K * 16 메모리는 어드레스에서 10비트, 각각의 워드에서 16비트를 갖는다.

12 READ and WRITE 동작 메모리에 새로운 워드를 입력하기 위한 동작 (쓰기)
1. 선택된 워드의 2진 어드레스를 어드레스 선에 인가 함. 2. 메모리에 저장될 데이터를 데이터 입력선에 인가 함. 3. Write 제어 입력을 활성화 함. 메모리로부터 데이터를 읽기 위한 동작 1. 선택된 워드의 2진 어드레스를 어드레스 선에 인가함. 2. Read 제어 입력을 활성화 함. 3. 메모리에 저장된 데이터는 출력선으로 나감. 일반적으로는 Read/Write 제어는 메모리 enable 선과 같이 사용한다.

13 메모리에 쓰기 및 메모리 부터 읽기 타이밍 파형 Memory 는 자체 CLK 을 가지지 않고 외부 제어신호에 의해 동작
쓰기 주기 : 쓰기 동작을 완성 하는 데 필요한 시간 읽기 주기: 읽기 동작을 완성 하는 데 필요한 시간 (워드를 선택/읽는 데 필요한 시간) Enable 의 제어신호가 비활성화 후에도 어드레스와 데이터신호 는 어느 정도 안정을 유지해야 한다. 1

14 Memory decoding 1비트의 정보(1,0)를 저장하는 2진 셀의 등가 논리도임
2진 셀은 내부 플립플롭에 1비트를 저장함. 3개의 입력과 1개의 출력을 갖음. 하나의 워드가 선택되면, Read/Write 제어 입력은 셀의 데이터 입출력 동작을 결정할 수 있음. select는 읽기/쓰기를 가능하게 한다. (enable 과 같은 역할) Read/Write는 읽기 혹은 쓰기 동작을 선택하게 한다.

15 4X4 RAM의 내부 구조 4 bit word 4 개로 구성된 메모리 2개의 address 라인의 디코더
Array logic symbol

16 4x4 RAM의 내부 구조 총 16개의 2진 셀을 갖음. Memory enable=0; 디코더의 모든 출력은 0이고 메모리 워드는 선택되지 않음. Memory enable=1; 4개의 워드 중 하나가 선택되고, Read/Write 입력이 동작을 결정함. 읽기 동작 상태이면, OR 게이트를 통해 출력 단자로 전송됨. 선택된 워드의 4비트가 쓰기 동작 상태이면, 입력선에 인가된 데이터는 선택된 워드의 4개의 2진 셀로 됨.

17 동시 디코딩 2개의 k/2 입력 디코더를 사용하여 하나의 k-입력 디코더를 대신할 수 있음.
2차원 디코딩을 위해서 메모리 소자들을 배열할 때 가능한 정사각형에 가깝게 배열함. K=10인 경우, 2개의 디코더를 사용하면 디코더당 5개의 입력을 갖는 64 AND 게이트가 필요함. 어떤 워드의 어드레스가 404일 때, X=01100 (12) and Y=10100(20). 일 때 선택된다.

18 동시 디코딩(어드레스 멀티플렉싱) IC 패키지의 핀수를 줄이기 위해, 적은 수의 어드레스 입력 입력핀만 가지고 어드레스 멀티플렉싱하는 방법을 사용한다. 가로 및 세로 어드레스가 같은 어드레스 핀을 사용하기 때문에, 패키지의 수는 크게 감소한다.

19 ROM (Read Only Memory) ▪ 반도체 메모리의 한 형태로서 데이터를 영구적으로 저장하거나 쉽게 바꿀 수 없도록 설계 ▪ ROM 은 시스템 동작 중 변하지 않는 데이터나 정보를 저장하기 위해 사용 ▪ 비휘발성이므로 전원을 꺼도 소멸되지 않음 ▪ 16x8 Bit ROM에 대한 간단한 내부 구조 - 레지스터 배열 : 각 레지스터는 워드크기(8bit)와 같은 수의 메모리 셀로 구성 특정 행과 열에 메모리 셀이 존재하도록 각 레지스터의 위치를 지정. - 주소 디코더 : 인가된 주소코드 A3~A0은 배열 내의 어떤 레지스터를 enable 시켜 8비트 데이터 워드 가 버스에 실릴 수 있도록 할 것인가를 결정. - 출력 버퍼 : 주소 입력에 의해 인에이블된 레지스터는 데이터버스에 데이터를 보낸다.

20 ROM의 유형 PROM (programmable ROM) : 프로그램이 가능. 하지만 일단 프로그램 되면 바꿀 수 없다.
EPROM(Erasable PROM) : 이전에 프로그램 되었을지라도 자외선에 노출시킴으로써 초기 상태로 되돌릴 수 있다. EEPROM(Electrically erasable PROM) : 자외선 대신 전기신호로 지울 수 있다.

21 ROM (Read Only Memory) ROM=디코더 + OR 게이트 -저장된 정보는 변하지 않음.
K개의 입력선과 n개의 출력선으로 구성. 입력은 메모리 어드레스를 공급하고, 출력은 어드레스에 의해 선택된 데이터 비트로 결정됨.

22 ROM의 간략화된 구조 (1개의 디코더, 퓨즈링크방식)
32 X 8 ROM : 5 input lines => 32 개의 address 라인 => 32 words 지정가능 롬은 각 8비트인 32개 워드와 0부터 31까지의 2진수 어드레스를 나타낼 수 있다. (5개의 입력선으로 디코더에 의해 32개의 출력으로 디코드 됨). 디코더의 출력은 각각 8개의 OR 게이트로 퓨즈접속(MOSFET) 연결됨. 교차점 (스위칭) 32 words

23 16x8 ROM의 기본 구조 (2개의 디코더, 레지스터 방식)

24 ROM 진리표 Address 에 “ ” 이 영구적으로 저장

25 조합회로 구현 ‘1’ : 최소항을 표시 ‘0’ ROM 은 조합회로구현 장치로도 동작 할 수 있다. (5입력으로 32개의 최소항
을 만든다) A7=최소항의 합(0,2,3,29) 메모리로의 동작 address->00010(2) Output->

26 예제 7-1 1 2 3 4 5 6 7 B5 B4 B3 B2

27 ROM의 VHDL 표현 CASE When 문을 이용한 VHDL description Data에 word 의 할당
Address 할당

28 ROM * ROM 의 VHDL description Library ieee;
Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity rom_1 is port ( addr : in std_logic vector(4 downto 0); rd : in std_logic; data : out std_logic_vector(7 downto 0)); End rom_1;

29 ROM Architecture behavof rom_1 is begin process(RD,ADDR)
if(RD='1') then case ADDR is when "00000" => DATA <=“ "; when "00001" => DATA <=“ "; ..………. when "11110" => DATA <=" "; when others => DATA <=“ "; end case; end if; end process; End behav;

30 ROM * ROM architecture 표현 방법 2 Architecture romtable of rom_1 is
Constant col : integer := 8 --word size Constant row : integer := 32 --depth size Type core is array (0 to row-1) of std_logic_vector(col-1 downto 0); Constant rom_table : core:= (" ", “ “… " “,” "); Begin Process (rd, addr) Variable index : integer range 0 to 15; Index := conv_integer(addr); if (rd='1') then data <= rom_table(index); end if; End process; End romtable;

31 ROM을 이용한 순차회로의 구현 ROM 을 이용한 순차 회로의 구현 (code converter )

32 조합 PLDs (Combinational PLDs )
조합 PLD는 AND-OR (곱의 합) 형태를 저장하는 데 용이한 AND 배열과 OR 배열로 구성된 프로그램 가능한 게이트를 갖는 집적회로임. PLD의 세가지 주요 유형 (a) PROM=고정된 AND 배열+프로그램 가능한 OR 배열 (b) PAL=프로그램 가능한 AND배열+고정된 OR 배열 (c ) PLA=프로그램 가능한 AND 배열+프로그램 가능한 OR배열

33 PLA (프로그래머블 논리 어레이) 프로그램 가능한 OR 배열 프로그램 가능한 AND 배열 B’ A AB’+AC+A’BC’
AC+BC AB’+AC+A’BC’

34 PLA 프로그래밍 표 x xor 1= x’ , x xor 0 = x 이므로 F1=AB’ + AC + A’BC’ F2= (AC + BC)’

35 PLA F0=A’B’+AC’ F1=AC’+B F2=A’B’+BC’ F3=B+AC

36 PLA 다중 출력 K-map F1=sum(2,3,5,7,8,9,10,11,13,15), F2=sum(2,3,5,6,7,10,11,14,15) F3=sum(6,7,8,9,13,14,15) * and 항의 공유가 중요

37 PLA * Program 의 구현 입력: 4 , 출력 3 서로 다른 항의 개수 : 5

38 PAL (프로그래머블 어레이 논리) PAL-프로그램 가능한 AND 배열과 고정된 OR 배열로 구성.
* AND 게이트만 프로그램이 가능하기 때문에, PLA만큼 유연하지는 않음. 프로그램 가능한 and 배열

39 PAL 퓨즈 맵 w (A,B,C,D)= 합 (2,12,13) x (A,B,C,D)=합 (7,8,9,10,11,12,13,14,15) y (A,B,C,D)=합 (0,2,3,4,5,6,7,8,10,11,15) z (A,B,C,D)=합 (1,2,8,12,13) K-map 을 이용한 함수의 간략화 w = ABC’ + A’B’CD’ x = A + BCD y = A’B + CD + B’D’ z = ABC’ + A’B’CD’ + AC’D’ + A’B’C’D = w + AC’D’ + A’B’C’D

40 순차적인 프로그래머블 장치 순차적(혹은 단순) 프로그래머블 논리 장치 (SPLD) : AND-OR arry 에 클럭에 의해 동기화 되는 FF이 추가됨. 복잡한 프로그래머블 논리 장치 (CPLD) 필드 프로그래머블 게이트 어레이 (FPGA) PAL FF

41 순차적 PAL 순차적 PAL 의 기본구조

42 순차적 PAL 순차적 PAL 의 기본구조 EN=0 출력 high impedance

43 순차적 PAL x X’ Q3’ Q3

44 PAL 12 입력 And array 입력 10개 I/O

45 PAL Registered Output : S1=S0=0 일 때 Q=D 를 지나 3상태 버퍼로 출력 Enable

46 PAL Combinational Output : S1=S0=1 일 때 OR 출력은 FF 를 거치지 않고 출력

47 CPLD &FPGA CPLD-개별적인 PLD의 집합 FPGA(필드 프로그래머블 게이트 어레이)
-사용자가 직접 프로그램 할 수 있는 VLSI 회로.

48 Quartus 를 이용한 ROM 설계 ROM table 의 작성
1. File → New → Memory Files → Memory Initialization File을 선택하여 ROM Data 생성 파일을 만든다. 2. 전체 word의 크기(Depth)와 Word size(출력 bit 크기)를 선택한다.

49 Quartus 를 이용한 ROM 설계 3. Memory Data 편집 창에서 ROM Data를 편집한다.
Memory Data 파일을 저장한 후 Text로 불러서 직접 편집할 수도 있다. 필요한 경우 View → Address Radix 또는 Memory Radix를 선택하여 Binary, Hexa 등을 선택하여 편집할 수 있다. (Address Radix 는 Decimal, Memory Radix 는 unsigned decimal로 선택하여 각 셀에 무작위로 값입력) 4. 편집이 완료 되면 ROM Data를 mif 또는 hex 형식으로 저장한다

50 Quartus 를 이용한 ROM 설계 5. New Project를 생성하겠냐고 나오면 yes 하고 새로운 project 생성

51 Quartus 를 이용한 ROM 설계 5. Add file 화면에서 ROM1.mif 파일이 등록되어 있어야 함.

52 Quartus 를 이용한 ROM 설계 1. MegaWizard를 실행시킨다.
2.새로운 Mega function을 실행 시키기 위해 상단 Menu 에서 Tools -> MegaWizard Plug-In Manger 선택 이후 창에서 Create a new custom Mega function variation을 선택 한 후 Next >

53 Quartus 를 이용한 ROM 설계 파일명은 ROM1으로 추가 C:/altera/13.1/ROM1/ROM1
3. 다음창의 memory compiler에서 ROM: 1-port를 선택한다. 4. AHDL, VHDL, Verilog-HDL 에서 VHDL을 선택한다. 5. output file 경로와 File 명을 정한 후 Next >

54 Quartus 를 이용한 ROM 설계 6. ‘q’ output bus의 bit 크기를 지정한다. (예: 8bit)
7. How many 8-bit words of memory 를 결정 (예:256 word)

55 Quartus 를 이용한 ROM 설계 8. 필요에 따라 동기 ROM인 경우에는 ‘address’ input port 레지스터를 체크박스에서 클릭하여 설정하고 비동기 ROM일 경우에는 체크를 해지하여 비동기 ROM을 생성한다. 비동기로 설정 한 후 Next >

56 Quartus 를 이용한 ROM 설계 9. 작성된 ROM data File을 선택한다. Browser단추 누르고 파일 찾아서 로딩 (확장자 주의) Next >

57 Quartus 를 이용한 ROM 설계 11. 화면 아래쪽의 Generate netlist 체크 하고 NEXT

58 Quartus 를 이용한 ROM 설계 11. 생성하고자 하는 파일을 모두 선택하여 체크
12. Finish 버튼을 누르면 최종적으로 선택된 파일들이 생성된다.

59 Quartus 를 이용한 ROM 설계 File -> new -> Block Diagram/schematic file 선택 Schematic 화면에서 insert -> symbol 클릭 Symbol 배치 후 schemtic file (*.bdf)를 다른이름으로 저장 . ROM1.bdf


Download ppt "Programmable Logic Device"

Similar presentations


Ads by Google