오후 6:50 2008-11-15
WinCPUL로 GAL 프로그래밍 하기
조경민 bro@shinbiro.com
===================================================


GAL 정보 얻기
----------------------------------------------------------


먼저 자신이 갖고 있는 GAL의 데이터 시트를 봐야 한다.
내가 갖고 있는 것은 Lattice사의 GAL20V8B-25LPN이다.
www.alldatasheet.com/ 에서 위의 칩명으로 검색해서 보면
GAL칩이 세가지 모드를 지원한다고 나오고 각 모드는 소프트웨어에서
Device이름으로 고르면 선택된다고 나오고 있다.
CPUL에서 Simple모드로 사용할 때는 G20V8AS 를 쓰라고 써있다.


그리고 중요한 핀 정보를 알아야 한다.
G20V8은 다음과 같은 핀 정보를 갖고 있다.


Pin#     Function
     1     CLK/IN
     2     IN
     3     IN
     4     IN
     5     IN
     6     IN
     7     IN
     8     IN
     9     IN
    10     IN
    11     IN
    12     GND
    13     OE/IN
    14     IN
    15     IO
    16     IO
    17     IO
    18     IO
    19     IO
    20     IO
    21     IO
    22     IO
    23     IN
    24     VCC


IO는 Q(출력)용으로 사용 가능하다.


GAL 프로그램 짜기
----------------------------------------------------------
무료 소프트웨어인 Atmel사의 WinCPUL을 사용하였다.


File/New Project한 다음 TestMyMux라고 짓고 입력핀, 출력핀 그런건 그냥 엔터 0으로 친다.
그리고 다음 처럼 소스를 짠다.
그러면 TestMyMux.pld라는 프로젝트가 생성된다.


Name     TestMyMux ;
PartNo   00 ;
Date     2008-11-15 ;
Revision 01 ;
Designer Engineer ;
Company  bro ;
Assembly None ;
Location  ;
Device   g20v8as ;


pin 2 = A;          /* 2번 핀은 IN이며 이를 사용해서 A로 이름지음*/
pin 3 = B;
pin 4 = sel;
pin 15 = y;         /* 15번 핀은 Q이며 이를 이용해서 y로 이름지음*/


y =   sel & A     /* if(sel) y = A; else y = B; 라고 짰음 */
   # !sel & B;


이때 사용할 수 있는 기호는
&는 and이고 #은 or이고 !는 not이다.


컴파일하면 jed 파일이 생기며 이것만 있으면 일딴 ROM writer를 이용해서 GAL칩에
프로그램 할 수 있따.



GAL 시뮬레이션
----------------------------------------------------------
프로그램 하기 전에 간단히 시뮬레이션이 가능하다.
Utilites/Win Sim을 선택하면 시뮬레이터 툴이 실행된다.


File/New를 한 후 Design File...을 선택한 후 TestMyMux.pld를 선택하고 OK를 누른다.
Signal/Add Signal후 A,B,sel,y를 추가하고 Close한다.
Signal/Add Vector를 한 후 4를 누른다.
그리고 테스트 시그널을 만들어야 하는데
A, B, sel은 입력 값이므로 직접 오른 클릭해서 Driver Input low 또는 high를 선택해서
웨이브를 생성한다. 그리고 y는 출력이므로 오른클릭해서 * - simulator determined를 선택한다.
그리고 Simulator/Run Simualtor를 선택하면 결과가 그려진다.


 


 

'KB > hardware soc' 카테고리의 다른 글

WinCPUL로 GAL 프로그래밍 하기  (0) 2008.11.15
VME 버스 아키텍처  (0) 2008.11.12
VGA 구현  (1) 2008.11.12
ps/2 keyboard 동작  (0) 2008.11.07
GAL PLD programming  (0) 2008.11.05
어드레스 버스, 데이터 버스 TTL  (0) 2008.11.05
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


http://kin.naver.com/detail/detail.php?d1id=11&dir_id=110209&eid=MenypOSuiyr0hbrXrsIBBd+yj/bIMg7M&qb=QnVzIE11eA==&pid=feENEwoi5UhsscYqO2Gsss--480039&sid=SRmcHtdJGUkAAHvxSTs



VME는 어떤 기계 이름이 아니고 PCI나 VESA 등과 같이 컴퓨터(마이크로프로세서)의 인터페이스 버스 규격의 일종입니다.
VME 버스를 사용하여 구축한 시스템을 VME 기기라고 하고요.


일반규격사양은 http://www.focusi.com/back64.htm 를 참조하시고요.
아래는 http://www.autocontrol.co.kr/magazine/0010/011-015.htm 에서 발췌한 내용입니다.


----------------------- 발췌 ----------------------


VME란 무엇인가


Versa Module Eurocard의 약자로 보드규격인 Versa 보드를 유럽규격에 외형만 맞춘 것이 VME가 된 것이다. 이 당시 다른 계열의 Bus 체계로는 멀티 Bus I, II 등이 있었으나 우수한 아키텍처임에도 ISA Bus 위력에 눌려 사장됐다.
68K CPU에 잘 매치되는 Bus 체계이지만 잘 정의되고 쉬운 인터페이스로 인텔계열을 포함한 기타 CPU와 매치한 보드도 자주 볼 수 있다. 초기 규격 어드레스 24비트/데이터 16비트 표준 어드레스에서 A32bit/D32bit 확장 어드레스를 거쳐 현재 A64/D64 규격까지 확장되었다. 표 1은 VME 규격표의 일반적인 사양이다.


왜 VME를 사용하는가


VME를 사용하는 사용자중 대부분은 VME 규격 자체의 우수성 때문에 VME를 사용하기보다는 시스템 개발의 편이성 때문에 사용하는 경향이 있는 것 같다. 표 2에서는 이유들을 정리해보았다.
200여 개의 메이커에 생산된 보드를 사용하여 H/W 개발 없이 S/W 개발만으로 System 개발을 하게 됨으로, CPU 보드 개발부터 I/O 보드까지 개발하는 방법보다는 좀더 빨리 쉽게 개발을 할 수 있게 된다.
또한 Bus 구조이기 때문에 기존의 개발된 보드를 재사용하거나 추가, 변경이 기능별로 이루어지게 되어 인력 소모를 최소화 할 수 있다. 또 32bit~64bit급의 CPU 보드를 고신뢰성 있는 제품으로 만들기까지는 설계, 생산, 사후관리 등 단계를 수차례 반복해야 하는데 System 개발자 입장에서는 주목적이 System이지 CPU보드가 아니기 때문에 보드 단위로 이런 것을 구할 수 있는 VME를 쓰게 되는 것이다. 그리고 대형 System이 되면 독자적인 형태의 통신체계나 OS체계, Bus 체계보다는 공업표준에 의거한 제품일수록 최종소비자에 신뢰감을 줄 수 있고, 혹 이것을 생산한 회사가 없어지더라도 연속적 증설 및 유지보수가 가능하다는 안심을 줄 수 있다. 뿐만 아니라 DIN(유럽규격)의 RACK과 커넥터 등의 진동이나 분진 가스 등에 강한 내환경성을 가지므로 System 고장의 상당한 원인인 접촉불량을 원천적으로 줄일 수가 있기 때문에 기계 내에 내장하는 컨트롤러로의 사용도 가능하다. 실제 많은 수의 PLC 업체에서 확장 커넥터를 DIN 커넥터로 쓰고 있다.
마지막으로 VME 본연의 기능에 와서 멀티프로세서 기능인데, 멀티프로세서가 백 프레인 최대 슬롯수인 21개까지 가능하므로 많은 수의 S/O를 제어할 때, 필요한 다중 프로세서에 의한 전담 I/O 컨트롤이 가능해진다.
필자의 사견으로도 첫 번째 개발시간 단축, 이 이유만으로도 VME Bus 체계를 사용해야 한다고 생각한다. 그러면 반드시 VME Bus만이 개발 시간이 단축되는 것이 아니라 다른 방법들 즉, 흔히 할 수 있는 PC 또는 워크스테이션과 PLC 방법으로도 가능하다고 반문할 독자도 있을 것이다.
이럴 때는 다른 여러 일들도 타당하지만 LAN이 아닌 Bus 레벨의 다중 프로세서 System 설계는 다른 차원의 설계 방법이고 결과도 틀리다고 말할 수 있다. 즉, PC와 PLC가 Bus 레벨로 결합된 설비는 없으며, 만약 있다면 단순히 Serial이나 LAN으로 연결된 System과는 상당히 다른 일을 할 수 있다. 가령 데이터 로거(수집장치)를 겸할 때 LAN 속도 이상의 데이터가 발생하는 동작불능 상태가 되거나 응답속도 개별 장치들의 성능을 상회하는 System 설계는 처음부터 다시 설계하여야 한다.


VME Bus의 특징


VME Bus의 구조는 표 3과 같이 크게 네 개의 Bus 신호군으로 나눌 수 있다.
데이터 전송은 마스터/슬레이브 보드간의 읽기/쓰기 동작 때 필요한 신호선들로 어드레스/데이터 라인 및 기타 컨트롤 신호선들로 되어 있다. 표 1의 규격과 같이 어드레스 신호의 데이터 신호를 혼합하지(MUX) 않는다. 그림 1에서와 같이 MUX와 개별 Bus 신호와 차이를 보이고 있다.
VME에서는 A16/D16, A24/D32, A32/D32까지는 개별 BUS 체계를 쓰고 있어 총 64개선이 사용되지만 64확장일 때는 개별로 사용하면 128개 선이 필요하게 되고 물리적으로 선간 거리가 멀어지게 되어 지연이 생기고 외형이 바뀌어야만 커넥터를 수용할수 있다. 그래서 기존의 64개선에 어드레스/데이터를 MUX하게 되고 이것을 제어하는 타이밍 조절회로가 부가되어 64bit가 구현되어 있다.
32bit까지는 개별 Bus체계인데 이것을 8bit 시절의 회로설계 개념을 32bit까지 확장한 셈이므로 쉽게 모드설계에 접근할 수 있도록 해준다. 데이터 전송시 모든 보드는 마스터/슬레이브 관계에 있게 되는데 VME에서 마스터는 CPU를 의미하고 슬레이브는 메모리 또는 I/O보드를 의미한다.
데이터 전송방식은 컴퓨터와 프린터 사이에서 사용하고 있는 핸드쉐이크방식을 사용해 다소 느려도 가장 신뢰성 있게 Bus 타이밍을 맞추게 해준다(그림 2). 이 방식은 도선의 길이가 길어지더라도 그 도선 지연시간만큼 Bus 사이클이 더해지므로 마스터 보드의 CPU 속도와 무관하게 데이터 전송이 가능하다(그림 3).
또 데이터 전송 에크 신호(DTACK)에 의해서만 전송사이클이 종료하게 됨으로, 혹 슬레이브 중에 그 어드레스를 디코드 해주는 슬레이브가 없으면 마스터는 그 사이클을 종료하지 못하게 영원히 어드레스/데이터를 유지하게 된다. 이것을 응용하여 간단한 매뉴얼 DTACK 신호 발생기를 만들어 싱글 스텝 디버거로 사용하기도 한다. 또한 마스터에서는 이럴 경우가 데드락과 유사하므로 BUS 신호 감지기를 붙여 어드레스 신호가 500μs~1ms 이상 지속하게 되면 CPU의 ‘BUS ERROR’신호로 예외 처리를 할 수 있게 준비해야 한다.
데이터 전송시 마스터에서는 AM코드라는 것이 어드레스 신호와 함께 슬레이브로 전송되고, 슬레이브 어드레스 신호와 함께 이것을 디코트하여 칩 셀렉터 신호를 만들어내야 하는데 어드레스가 어드레스 레인지를 나타낸다면 이 AM코드는 어드레스 스페이스를 나타내게 된다. 그림 4에 VME에서 엑세스 가능한 모든 영역을 도식으로 표시했다.
그림 4와 같이 계산한다면 32bit 어드레스 영역에서 16 GB공간과 24bit 영역에서 64MB의 공간, 16bit 영역에서 128K 공간 등이 사용 가능하므로 총 16G, 64M, 128Kbyte의 공간이 32bit 영역까지의 공간이다. 이것에 64bit 영역까지 더해지게 되면 그 영역은 무한대에 가깝다. 대부분 프로그램 모듈은 코드 영역과 데이터 영역으로 나누어지며 이것은 다시 일반 유저와 시스템관리자인 수퍼 유저용으로 나누게 된다.
또 다시 이것을 VME에서는 16/24/32로 나누게 되는데 이것을 각각 메모리에 설치하려면 불가능하므로, 실제 설계에서는 중첩되게 메모리를 설계해 메모리 맵에 의하여 4G 내에서 구별되게 한다.
표 4에서 4M 로컬 메모리를 가지고 있는 32bit CPU 보드의 관점에서 보는 VME쪽 메모리 맵으로 프로그래머는 이것을 사용하게 된다. 그림 5와 같이 CPU보드는 32bit이므로 항상 32bit 어드레스만 출력되고 이중 일부 영역을 16M, 64K씩 펑크내서 F0~로 시작하면 회로적으로 AM코드가 16bit가 되게하는 AM코드 제너레이터가 마스터보드에 있어야한다. 이것은 회로를 설계하는 방식이므로 반드시 모든 CPU보드가 일치하지 않는다. 그러므로 CPU보드의 메모리 맵을 세심히 살필 필요가 있다.
인터럽트 처리를 7레벨의 우선순위 방식으로 처리된다. IRQ1~7 중 7레벨이 가장 높으며 인터럽트를 걸어주는 인터럽트 회로와 인터럽트를 수신 처리하는 인터럽트 핸들러의 관계가 필요하다.
인터럽트 절차에 관한 예를 도식화 했다(그림 6).
인터럽트 레벨이 같더라도 벡터값을 달리 송신하는 것으로 모든 서비스를 받을 수 있으므로 인터럽트 요청이 7레벨이어도 인터럽트를 7개만 수신할 수 있는 것이 아니라 인터럽트에서 이벤트 상황만 잘 저장하고 있으면 여러 인터럽트를 처리할 수 있다. 또한, 인터럽트 핸들러와 인터럽트 페어를 둘 수 있다. 그러나 하나 인터럽트에 의한 신호는 오직 하나의 핸들러에 수신돼야 한다. 즉, 하나의 인터럽트를 복수의 핸들러가 처리할 수 없다(그림 7).
Bus 중재 신호는 4개의 Bus 요청신호(BR0~ BR3)와 데이지 체인 신호로 이루어지며, 동시에 4개의 요청신호를 중재기(아비터)에서 선택하여 Bus 사용권을 주게 된다.
그러므로 4개의 마스터(Bus 요청자)까지도 평등하게 사용권을 줄 수 있으나(라운드 로빈 아비터) 다섯 번째 마스터부터는 데이지 체인에 의해 연결하기 때문에 불평등하게 사용권을 얻게 된다. 즉, 앞의 4개의 마스터 요청이 없어야만 Bus를 사용할 수 있게 된다.
또한 중재기는 아니지만 VME Bus상의 모든 마스터를 페어 마스터로 설정해 놓으면 마치 이더넷에서 충돌을 회피하면서 선로를 엑세스하듯이 Bus상에 사용하는 마스터가 없으면 마스터쉽을 발동하는 방법으로 모든 슬롯에 균등하게 마스터쉽을 줄 수 있지만 모든 보드의 Bus 요청 방법을 이 방법으로 설정해야만 한다. 마스터쉽 요청 방법은 아래 3가지 방법을 쓰며 ROR과 페어 방법을 동시에 쓸 수 없다(그림 8).
① RWD(Release When Done 요청기)
Bus 사용을 마친 후 즉시 Bus를 풀어서 다른 마스터가 사용할 수 있게 하는 방법. 그러나 동일 마스터가 재차 Bus를 사용하려하면 사용할 때마다Bus 중재기로부터 중재를 받아야만 한다.
② ROR(Release On Request 요청기)
한번 획득한 Bus 사용권을 사용이 끝나더라도 풀어주지 않고 계속 Bus를 물고 있다가 다른 마스터가 Bus 요청을 하면 그 때 Bus를 풀어줌. 동일 마스터가 빈번히 Bus를 사용할 때 아비터를 거치지 않으므로 Bus 효율이 좋음.
③ FAIR 요청기
Bus상에 어떤 Bus 마스터나 Bus 요청이 없을 때만 Bus 요청을 하는 이더넷 방식. 모든 슬롯의 마스터에 균등하게 사용이 할당됨.


VME System Design 경향


VME 보드 제품은 초기에는 CPU보드, 메모리 보드, S/O 보드, DISK I/O 보드, LAN I/O 보드 등으로 나누어져 있었으나, 실장기술의 발달로 이 모든것은 하나의 보드로 만든 싱글보드 컴퓨터(SBC)가 주류이다(그림 9).
보드로 사용되는 VME I/O 보드들은 기본기능 이외에 추가 사용할 통신 I/O 보드 또는 AD, DA, DIO 같은 제어 시스템용 I/O 보드 등이 있고(그림 10), DSP와 같은 보조 프로세서가 추가될 때는 I/O와 DSP간에 FPPP(160Mbyte/sec)(www.fpdp. com) 같은 고속의 Bus 수단을 사용하는 등 VME Bus를 SBC간 또는 DSP간의 프로세서 통신채널로 쓰는 경향이 많아지고 있다. 또한 I/O 보드들도 AD, DA, DIO를 한 보드에 실장이 가능하게 IP, PMC, PC-Mip 등의 모듈화로 가고 있다(그림 11, www. groupipc.com).
다음으로 두드러지는 특징으로 과거의 모토로라 일변도의 VME CPU 편중에서 PC규격으로의 대대적인 전환이 이루어지고 있는 점이다.
프로세서 성능이나 가용 소프트웨어 등이 월등히 우수하기 때문이다. 또 그림 12와 같이 고속의 PC와의 결합솔루션도 속속 발표되고 있어 과거에 개발이 힘들었던 것을 PC를 끌어안음으로 해결하고 있다(www.sbs.com).
속도의 개선도 꾸준히 계속되고 있어 VME320, VME 1000도 얘기되고 있다(www.vita.com). 혹자는 거대한 PC산업구조가 VME Bus 시장을 대체할 것이라고 하지만 아직까지 VME만한 안정된 Bus 체계가 나오고 있지는 않고 있다.
오히려 VME SBC에 PC를 아키텍처로 적극 수용하여 VME PC(www.sbs.com) 등이 보완해주고 있어 계속 유지 발전되어 나아갈 것이다.

'KB > hardware soc' 카테고리의 다른 글

WinCPUL로 GAL 프로그래밍 하기  (0) 2008.11.15
VME 버스 아키텍처  (0) 2008.11.12
VGA 구현  (1) 2008.11.12
ps/2 keyboard 동작  (0) 2008.11.07
GAL PLD programming  (0) 2008.11.05
어드레스 버스, 데이터 버스 TTL  (0) 2008.11.05
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


VGA 구현

KB/hardware soc 2008.11.12 01:27

오전 1:02 2008-11-12
EGA와 VGA 그리고 LCD
bro@shinbiro.com 조경민
=====================================================================


구현 방법
--------------------------------------------------------------
보드 상 VGA (RGB신호 핀) --> wire wrap ---> 330 ohm --> D-Sub 15F (connector) ---> VGA cable ---> LCD Monitor


DSub 3열 15 pin female DIP 타입 410원 근데 DIP핀도 3열이네;
DIP 핀을 wrap board
http://www.eleparts.co.kr/shop/view.php?cate1=45&cate2=288&cate3=529&cate4=&item=3495&keyword=&page=1


DIP핀에 wire wrap하고


330 ohm (resistor)을 R, G, B 선에 연결 한 후 VGA connector에 연결
http://www.stevechamberlin.com/cpu/2008/06/24/video-tests/#comments


 



http://www.monitor4u.co.kr/guide/content/?idx=179&page=3&page_col=3&act=view


EGA
----------------------------------------------------------------
디지털
http://en.wikipedia.org/wiki/Enhanced_Graphics_Adapter
640x350x16c, other mode
H-freq 15.7/21.8kHz
V-freq 60Hz
color 16/64
핀 9개
1. GND
2. SR: Secondary Red (intensity)
3. PR: Primary Red
4. PG: Primary Green
5. PB: Primary Blue
6. SG: Secondary Green (intensity)
7. SB: Secondary Blue (Intensity)
8. H : Horizontal Sync
9. V : Vertical Sync



VGA
---------------------------------------
1987 IBM
D-Sub 아날로그
256 KB Video RAM
16-color and 256-color modes
262,144-value color palette (six bits each for red, green, and blue)
Selectable 25.175 MHz [3] or 28.322 MHz master clock
Maximum of 800 horizontal pixels[4]
Maximum of 600 lines[5]
Refresh rates at up to 70 Hz [6]
Vertical Blanking interrupt (Not all clone cards support this.)
Planar mode: up to 16 colors (4 bit planes)
Packed-pixel mode: 256 colors (Mode 13h)
Hardware smooth scrolling support
Some "Raster Ops" support
Barrel shifter
Split screen support
0.7 V peak-to-peak [7]
75 ohm double-terminated impedance (18.7mA - 13mW)


텍스트 모드와 아래 표준 그래픽 모드
640×480 in 16 colors
640×350 in 16 colors
320×200 in 16 colors
320×200 in 256 colors (Mode 13h)


핀 정보
D-Sub 15 Pin 아래와 같이 배열
--------------------
5   4   3   2  1
 10  9   8   7   6
15 14  13  12  11
--------------------
Video signal RGB video signal plus option H and V sync
Data signal I²C data channel for DDC information
Connector DE-15


Pin 1 RED Red video
Pin 2 GREEN Green video
Pin 3 BLUE Blue video
Pin 4 N/C Not connected
Pin 5 GND Ground (HSync)
Pin 6 RED_RTN Red return
Pin 7 GREEN_RTN Green return
Pin 8 BLUE_RTN Blue return
Pin 9 +5 V +5 V DC
Pin 10 GND Ground (VSync, DDC)
Pin 11 N/C Not connected
Pin 12 SDA I²C data
Pin 13 HSync Horizontal sync
Pin 14 VSync Vertical sync
Pin 15 SCL I²C clock


VGA 시스템 (그래픽 카드) 구현
---------------------------------------------------------------------------------
모니터 연결하려면 analog VGA 15pin을 연결하면된다.
HSync와 VSync를 원하는 간격으로 생성해서 그 안에 픽셀 정보를 잘 넣으면 화면에 뿌려짐
Rx인 모니터는 HSync, VSync가 발생되는 간격을 통해서 해당 해상도를 자동으로 파악함.

640x480동작시키려면 25.175 MHz 오실레이터 필요.
640 + 160 (HBLANK 구간) 합쳐서 라인 당 800 픽셀
25.175MHz which is about 39.72 ns

http://www.epanorama.net/documents/pc/VGA_timing.html


http://en.wikipedia.org/wiki/VGA



http://ko.wikipedia.org/wiki/VGA


palette controller
UM70C171 Color Palette with Triple 6-bit DAC
256x18bit color palette RGB analog Output 24 DIP pin
http://doc.chipfind.ru/umc/um70c171.htm


25.175MHz OSC (for VGA)


256K SRAM (for VIDEO RAM)


http://www.stevechamberlin.com/cpu/2008/07/20/video-system-design/


http://www.stevechamberlin.com/cpu/2008/02/26/peripherals-galore/
http://www.stevechamberlin.com/cpu/2008/06/29/video-notes/


http://www.hanssummers.com/computers/newz80/circuit/index.htm


 


멀티 싱크 모니터
---------------------------------------------------------------------------


http://www.encyber.com/search_w/ctdetail.php?masterno=792291&contentno=792291


멀티싱크로너스 모니터(multi synchronous monitor)라고도 한다. 1985년 일본 NEC사에서 개발한 것으로 입력 신호 주파수가 고정되어 있지 않은 모니터를 말한다.


초기 모니터들은 모두 멀티모드모니터(multi mode monitor)로서 고정된 주파수만을 지원하였기 때문에 규격이 일치하는 비디오카드만을 사용해야 했다. 그러나 그래픽 환경이 점점 발달하면서 고해상도를 표현할 수 있도록 다양한 주파수를 지원할 수 있는 멀티싱크모니터가 개발되었다.


멀티싱크모니터는 주파수가 고정되어 있지 않으므로 다양한 주파수대의 여러 종류의 그래픽카드를 사용할 수 있다. 예를 들어 EGA(ehanced graphics adapter) 그래픽카드를 사용하면 EGA 모니터로 동작하고, VGA(video graphics adapter) 그래픽카드를 사용하면 VGA 모니터로 동작한다.


그러므로 어떤 그래픽카드를 사용하더라도 흑백모니터, CGA(color graphics adapter) 모니터, EGA 모니터, VGA 모니터 등의 모든 모니터 기능을 할 수 있다. 최근에 사용되는 모니터들은 모두 멀티싱크모니터이다.


http://dojeun.egloos.com/320922


 


VGA video signal generation
-------------------------------------------------------------
http://lslwww.epfl.ch/pages/teaching/cours_lsl/ca_es/VGA.pdf


HSYNC, VSYNC 발생 타이밍은 다음과 같다.


HSYNC
___________________      _________
                   |____|
<------------->
     640
<------------------>
        660
<----------------------->
           756
<-------------------------------->  h_count
                 800


VSYNC
___________________      _________
                   |____|
<------------->
     480
<------------------>
        494
<----------------------->
           495
<-------------------------------->  v_count
                 525



VGA timing information
--------------------------------------------------------
http://www.epanorama.net/documents/pc/vga_timing.html


Horizonal Timing
Horizonal Dots         640     640     640       
Vertical Scan Lines    350     400     480
Horiz. Sync Polarity   POS     NEG     NEG
A (us)                 31.77   31.77   31.77     Scanline time
B (us)                 3.77    3.77    3.77      Sync pulse lenght
C (us)                 1.89    1.89    1.89      Back porch
D (us)                 25.17   25.17   25.17     Active video time
E (us)                 0.94    0.94    0.94      Front porch
         ______________________          ________
________|        VIDEO         |________| VIDEO (next line)
    |-C-|----------D-----------|-E-|
__   ______________________________   ___________
  |_|                              |_|
  |B|
  |---------------A----------------|

Vertical Timing
Horizonal Dots         640     640     640
Vertical Scan Lines    350     400     480
Vert. Sync Polarity    NEG     POS     NEG     
Vertical Frequency     70Hz    70Hz    60Hz
O (ms)                 14.27   14.27   16.68     Total frame time
P (ms)                 0.06    0.06    0.06      Sync length
Q (ms)                 1.88    1.08    1.02      Back porch
R (ms)                 11.13   12.72   15.25     Active video time
S (ms)                 1.2     0.41    0.35      Front porch
         ______________________          ________
________|        VIDEO         |________|  VIDEO (next frame)
    |-Q-|----------R-----------|-S-|
__   ______________________________   ___________
  |_|                              |_|
  |P|
  |---------------O----------------|


http://www.intrinsix.com/intrinsix-ip/vga/vga-core.htm

































































































































































































































































Mode


Type


Res.


Colors


Vert.


Horz.


Pix Clk


SM and SXGA MODES


0, 1


A/N


320 x 200


16


70 Hz


31.778 KHz


25.175 MHz


2, 3


A/N


640 x 200


16


70 Hz


31.778 KHz


25.175 MHz


0*, 1*


A/N


320 x 350


16


70 Hz


31.778 KHz


25.175 MHz


2*, 3*


A/N


640 x 350


16


70 Hz


31.778 KHz


25.175 MHz


0+, 1+


A/N


320 x 350


16


70 Hz


31.778 KHz


28.322 MHz


2+, 3+


A/N


640 x 350


16


70 Hz


31.778 KHz


28.322 MHz


4, 5


APA


320 x 200


4


70 Hz


31.778 KHz


25.175 MHz


6


APA


640 x 200


2


70 Hz


31.778 KHz


25.175 MHz


7


A/N


720 x 350


Mono


70 Hz


31.778 KHz


28.322 MHz


7+


A/N


720 x 400


Mono


70 Hz


31.778 KHz


28.322 MHz


D


APA


320 x 200


16


70 Hz


31.778 KHz


25.175 MHz


E


APA


640 x 200


16


70 Hz


31.778 KHz


25.175 MHz


F


APA


640 x 350


Mono


70 Hz


31.778 KHz


25.175 MHz


10


APA


640 x 350


16


70 Hz


31.778 KHz


25.175 MHz


11


APA


640 x 480


2


60Hz


31.778 KHz


25.175 MHz


12


APA


640 x 480


16


60Hz


31.778 KHz


25.175 MHz


13


APA


320 x 200


256


70 Hz


31.778 KHz


25.175 MHz


SXGA MODES


101


APA


640x480


256


85 Hz


43.3 KHz


36.00 MHz


102


APA


800 x 600


16


85 Hz


53.7 KHz


56.25 MHz


103


APA


800 x 600


256


85 Hz


53.7 KHz


56.25 MHz


104


APA


1024 x 768


16


85 Hz


68.7 KHz


94.5 MHz


105


APA


1024 x 768


256


85 Hz


68.7 KHz


94.5 MHz


106


APA


1280 x 1024


16


85 Hz


91.1 KHz


157.5 MHz


107


APA


1280 x 1024


256


85 Hz


91.1 KHz


157.5 MHz


114


APA


800 x 600


64K


85 Hz


53.7 KHz


56.25 MHz


115


APA


800 x 600


16.8 M


85 Hz


53.7 KHz


56.25 MHz


117


APA


1024 x 768


64K


85 Hz


68.7 KHz


94.5 MHz


118


APA


1024 x 768


16.8 M


85 Hz


68.7 KHz


94.5 MHz


11A


APA


1280 x 1024


64K


85 Hz


91.1 KHz


157.5 MHz


11B


APA


1280 x 1024


16.8 M


85 Hz


91.1 KHz


157.5 MHz


 


text mode verilog source
http://web.mit.edu/6.111/www/f2005/code/labkit_beta2demo/vga.v.html


 


여러 그래픽 카드에 대한 정보
------------------------------------------------------------
http://stason.org/TULARC/pc/video-faq/index.html


http://stason.org/TULARC/pc/video-faq/62-What-is-VGA-and-how-does-it-work.html


Graphics Controller: Can perform logical functions on data being written to display memory.


Display Memory: A bank of 256k DRAM divided into 4 64k colour planes. It is used to store screen display data.


Serializer: Takes display data from the display memory and converts it to a serial bitstream which is sent to the attribute controller.


Attribute Controller: Contains the colour LUT (Look Up Table) which determines what colour will be displayed for a given pixel value in display memory.


Sequencer: Controls timing of the board and enables/disables colour planes.


CRT Controller: Generates syncing and blanking signals to control the monitor display.


The VGA modes are:


Mode    Type    Resolution      Chars   Colours
(Hex)
0,1     text    360x400         40x25   16
2,3     text    720x400         80x25   16
4,5     gfx     320x200         40x25   4
6       gfx     640x200         80x25   2
7       text    720x400         80x25   mono
D       gfx     320x200         40x25   16
E       gfx     640x200         80x25   16
F       gfx     640x350         80x25   mono
10      gfx     640x350         80x25   16
11      gfx     640x480         80x30   2
12      gfx     640x480         80x30   16
13      gfx     320x200         40x25   256



대부분의 PC모니터는 다음 MDA/Hercules/CGA/EGA 모드를 지원


Display         Compatible      Colours Text    Graphics    Scan
                Adapters                Res.    Resolution  Rates
----------------------------------------------------------------------
Monochrome      MDA                             640x350     Vert-50 Hz
                Hercules        2       80x25   720x350     Hor-18.43 kHz
                EGA                             720x348
----------------------------------------------------------------------
Color           CGA             16      40x25   320x200     V-60 Hz
                EGA                     80x25   640x200     H-18.43 kHz
----------------------------------------------------------------------
Enhanced        CGA             16 of   40x25   320x200     V-60 Hz
Color           EGA               64    80x25   640x200     H-18.43 kHz
                                                640x350     or 21.8 kHz
----------------------------------------------------------------------
Multisync       CGA             16 of   40x25   320x200     Variable
digital         EGA               64    80x25   640x200
                                                640x350
----------------------------------------------------------------------
Multisync       VGA             256 of  80x25   640x480     Variable
analog                            256k          800x600
----------------------------------------------------------------------
VGA Color       VGA             256 of  40x25   320x400     V-70 Hz
display                           256k  80x25   640x400     H-31.5 kHz



VGA Mono                                        320x350
display                                         640x350
                                                720x350
                                                720x400
                                                640x480
----------------------------------------------------------------------


20 How do I calculate the minimum bandwidth required for a monitor?


Bandwidth 계산
bandwidth = 1.05height x 1.3width * reflesh_rate
예를 들어 1028x1024 @ 60Hz = 1.05*1024 * 1.3*1280 * 60 = 107MHz


VGA 640x480 @ 60Hz = 1.05*640 * 1.3*480 * 60 = 25.159680 Mhz


EGA 640x200 @ 60Hz = 1.05*640 + 1.3*480 * 60 = 10,483200 MHz



21 How do I calculate how much VRAM/DRAM I need?
640x480x24 bit colour = 921600 (min. 1 Meg card)
800x600x16 bit colour = 960000 (min. 1 Meg card)
800x600x24 bit colour = 1440000 (min. 2 Meg card)
1024x768x16 bit colour = 1572864 (min. 2 Meg card)
1024x768x24 bit colour = 2359296 (min. 4 Meg card)
1280x1024x8 bit colour = 1310720 (min. 2 Meg card)
1280x1024x24 bit colour = 3932160 (min. 4 Meg card)
1600x1200x24 bit colour = 5760000 (min. 6 Meg card)



32 How does a video accelerator work, and will one help me?


CPU가 픽셀을 다 처리하지 않고 cpu는 최소 입력만 주고 vga가 기능을 갖는다.
-the background fill pattern
-the location and contents of rectangular regions, i.e. windows
-and has adequate memory to store them.


To move a window, the CPU has to transmit something like:
-'move window' instruction
-window ID
-location to move to


This frees the bus and CPU to execute other tasks.
bitmap and pixmap transfers and painting, movement of sprites and icons, opening and closing of windows, filling with solid colours and patterns, line drawing, polygon painting, etc
As a result, even an ISA bus accelerator video card can provide blistering speed improvements over VGA in graphical environments like Windows 3.1, OS/2, X Windows (i.e. XFree86) and AutoCAD


Some newer accelerator cards include functions for 3D graphics rendering like polygon shading, coordinate manipulation and texture mapping. Others provide on-the-fly magnification of video clips so that those MPEG movies don't appear in a box that's three inches wide and two inches high on your screen.


 


61 Circuit for Converting from VGA to Fixed-Freq. RGB


[From: Roger Wolff (R.E.Wolff@et.tudelft.nl)]VGA video signal generation
-------------------------------------------------------------
http://lslwww.epfl.ch/pages/teaching/cours_lsl/ca_es/VGA.pdf


HSYNC, VSYNC 발생 타이밍은 다음과 같다.


HSYNC
___________________      _________
                   |____|
<------------->
     640
<------------------>
        660
<----------------------->
           756
<-------------------------------->  h_count
                 800


VSYNC
___________________      _________
                   |____|
<------------->
     480
<------------------>
        494
<----------------------->
           495
<-------------------------------->  v_count
                 525



VGA timing information
--------------------------------------------------------
http://www.epanorama.net/documents/pc/vga_timing.html


Horizonal Timing
Horizonal Dots         640     640     640       
Vertical Scan Lines    350     400     480
Horiz. Sync Polarity   POS     NEG     NEG
A (us)                 31.77   31.77   31.77     Scanline time
B (us)                 3.77    3.77    3.77      Sync pulse lenght
C (us)                 1.89    1.89    1.89      Back porch
D (us)                 25.17   25.17   25.17     Active video time
E (us)                 0.94    0.94    0.94      Front porch
         ______________________          ________
________|        VIDEO         |________| VIDEO (next line)
    |-C-|----------D-----------|-E-|
__   ______________________________   ___________
  |_|                              |_|
  |B|
  |---------------A----------------|

Vertical Timing
Horizonal Dots         640     640     640
Vertical Scan Lines    350     400     480
Vert. Sync Polarity    NEG     POS     NEG     
Vertical Frequency     70Hz    70Hz    60Hz
O (ms)                 14.27   14.27   16.68     Total frame time
P (ms)                 0.06    0.06    0.06      Sync length
Q (ms)                 1.88    1.08    1.02      Back porch
R (ms)                 11.13   12.72   15.25     Active video time
S (ms)                 1.2     0.41    0.35      Front porch
         ______________________          ________
________|        VIDEO         |________|  VIDEO (next frame)
    |-Q-|----------R-----------|-S-|
__   ______________________________   ___________
  |_|                              |_|
  |P|
  |---------------O----------------|


 


여러 그래픽 카드에 대한 정보
------------------------------------------------------------
http://stason.org/TULARC/pc/video-faq/index.html


http://stason.org/TULARC/pc/video-faq/62-What-is-VGA-and-how-does-it-work.html


Graphics Controller: Can perform logical functions on data being written to display memory.


Display Memory: A bank of 256k DRAM divided into 4 64k colour planes. It is used to store screen display data.


Serializer: Takes display data from the display memory and converts it to a serial bitstream which is sent to the attribute controller.


Attribute Controller: Contains the colour LUT (Look Up Table) which determines what colour will be displayed for a given pixel value in display memory.


Sequencer: Controls timing of the board and enables/disables colour planes.


CRT Controller: Generates syncing and blanking signals to control the monitor display.


The VGA modes are:


Mode    Type    Resolution      Chars   Colours
(Hex)
0,1     text    360x400         40x25   16
2,3     text    720x400         80x25   16
4,5     gfx     320x200         40x25   4
6       gfx     640x200         80x25   2
7       text    720x400         80x25   mono
D       gfx     320x200         40x25   16
E       gfx     640x200         80x25   16
F       gfx     640x350         80x25   mono
10      gfx     640x350         80x25   16
11      gfx     640x480         80x30   2
12      gfx     640x480         80x30   16
13      gfx     320x200         40x25   256



대부분의 PC모니터는 다음 MDA/Hercules/CGA/EGA 모드를 지원


Display         Compatible      Colours Text    Graphics    Scan
                Adapters                Res.    Resolution  Rates
----------------------------------------------------------------------
Monochrome      MDA                             640x350     Vert-50 Hz
                Hercules        2       80x25   720x350     Hor-18.43 kHz
                EGA                             720x348
----------------------------------------------------------------------
Color           CGA             16      40x25   320x200     V-60 Hz
                EGA                     80x25   640x200     H-18.43 kHz
----------------------------------------------------------------------
Enhanced        CGA             16 of   40x25   320x200     V-60 Hz
Color           EGA               64    80x25   640x200     H-18.43 kHz
                                                640x350     or 21.8 kHz
----------------------------------------------------------------------
Multisync       CGA             16 of   40x25   320x200     Variable
digital         EGA               64    80x25   640x200
                                                640x350
----------------------------------------------------------------------
Multisync       VGA             256 of  80x25   640x480     Variable
analog                            256k          800x600
----------------------------------------------------------------------
VGA Color       VGA             256 of  40x25   320x400     V-70 Hz
display                           256k  80x25   640x400     H-31.5 kHz



VGA Mono                                        320x350
display                                         640x350
                                                720x350
                                                720x400
                                                640x480
----------------------------------------------------------------------


20 How do I calculate the minimum bandwidth required for a monitor?


Bandwidth 계산
bandwidth = 1.05height x 1.3width * reflesh_rate
예를 들어 1028x1024 @ 60Hz = 1.05*1024 * 1.3*1280 * 60 = 107MHz


VGA 640x480 @ 60Hz = 1.05*640 * 1.3*480 * 60 = 25.159680 Mhz


EGA 640x200 @ 60Hz = 1.05*640 + 1.3*480 * 60 = 10,483200 MHz



21 How do I calculate how much VRAM/DRAM I need?
640x480x24 bit colour = 921600 (min. 1 Meg card)
800x600x16 bit colour = 960000 (min. 1 Meg card)
800x600x24 bit colour = 1440000 (min. 2 Meg card)
1024x768x16 bit colour = 1572864 (min. 2 Meg card)
1024x768x24 bit colour = 2359296 (min. 4 Meg card)
1280x1024x8 bit colour = 1310720 (min. 2 Meg card)
1280x1024x24 bit colour = 3932160 (min. 4 Meg card)
1600x1200x24 bit colour = 5760000 (min. 6 Meg card)



32 How does a video accelerator work, and will one help me?


CPU가 픽셀을 다 처리하지 않고 cpu는 최소 입력만 주고 vga가 기능을 갖는다.
-the background fill pattern
-the location and contents of rectangular regions, i.e. windows
-and has adequate memory to store them.


To move a window, the CPU has to transmit something like:
-'move window' instruction
-window ID
-location to move to


This frees the bus and CPU to execute other tasks.
bitmap and pixmap transfers and painting, movement of sprites and icons, opening and closing of windows, filling with solid colours and patterns, line drawing, polygon painting, etc
As a result, even an ISA bus accelerator video card can provide blistering speed improvements over VGA in graphical environments like Windows 3.1, OS/2, X Windows (i.e. XFree86) and AutoCAD


Some newer accelerator cards include functions for 3D graphics rendering like polygon shading, coordinate manipulation and texture mapping. Others provide on-the-fly magnification of video clips so that those MPEG movies don't appear in a box that's three inches wide and two inches high on your screen.


 


61 Circuit for Converting from VGA to Fixed-Freq. RGB


[From: Roger Wolff (R.E.Wolff@et.tudelft.nl)]


   VGA connector                                        monitor
 
      R ----------------------------------------------------- R
    gnd ----------------------------------------------------- gnd



      G ----------------------------------------------------- G
    gnd ----------------------------------------------------- gnd


 


      B ----------------------------------------------------- B
    gnd ----------------------------------------------------- gnd
 
                    ___________
                   |           |
                   |  74HCT86  |
                   |           |
                   |           |
  hsync -----------|1          |
                   |          3|----------------------------- Csync
  vsync -----------|2          |
                   |           |
                   |           |
                   |           |
           gnd--+--|7        14|--+-- +5V
                |  |___________|  |
                |                 |
                |________||_______|
                         ||
                        0.1 uF


Use COAX cables for the "data" (R, G, B) lines. You can use just about anything for the hsync and the vscyn lines but keep them as short as possible. Around 30 cm (a foot) is fine. I use a COAX cable for the Csync line too, as I need a BNC connector at the end of the monitor anyway. I didn't do anything about termination, and all seems to be A-OK.


I gather the power for the 'HCT86 from inside the computer. You can find something yourself (find a 5V powerline going to the leds or something), or use something that resembles those "add-on" fans. The latter usually use 12V, but they show the principle: a male and a female cable connector and 6 wires should do the trick.


This worked for my Grayscale monitor (where the R and B lines are not needed), and now works just fine for my 21" monochrome monitor.


I start X at boot-time, before ANYTHING runs: my Xserver owns PID 3. I then quickly bring up the network and start an Xconsole. This allows me to follow the rest of the bootsequence.


VGA to RGB + composite sync -converter Designed by Tomi Engdahl
----------------------------------------------------------------
http://www.tkk.fi/Misc/Electronics/circuits/vga2rgbs.html



Use COAX cables for the "data" (R, G, B) lines. You can use just about anything for the hsync and the vscyn lines but keep them as short as possible. Around 30 cm (a foot) is fine. I use a COAX cable for the Csync line too, as I need a BNC connector at the end of the monitor anyway. I didn't do anything about termination, and all seems to be A-OK.


I gather the power for the 'HCT86 from inside the computer. You can find something yourself (find a 5V powerline going to the leds or something), or use something that resembles those "add-on" fans. The latter usually use 12V, but they show the principle: a male and a female cable connector and 6 wires should do the trick.


This worked for my Grayscale monitor (where the R and B lines are not needed), and now works just fine for my 21" monochrome monitor.


I start X at boot-time, before ANYTHING runs: my Xserver owns PID 3. I then quickly bring up the network and start an Xconsole. This allows me to follow the rest of the bootsequence.


VGA to RGB + composite sync -converter Designed by Tomi Engdahl
----------------------------------------------------------------
http://www.tkk.fi/Misc/Electronics/circuits/vga2rgbs.html

'KB > hardware soc' 카테고리의 다른 글

WinCPUL로 GAL 프로그래밍 하기  (0) 2008.11.15
VME 버스 아키텍처  (0) 2008.11.12
VGA 구현  (1) 2008.11.12
ps/2 keyboard 동작  (0) 2008.11.07
GAL PLD programming  (0) 2008.11.05
어드레스 버스, 데이터 버스 TTL  (0) 2008.11.05
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. 굿굿굿 2016.06.25 23:41 신고  댓글주소  수정/삭제  댓글쓰기

    와... VGA 코딩할라고 자료 찾는 중이었는데, 정말 훌륭한 정리 입니다. 잘 보고 갑니다!!!



Heres a shot of my glorious hand-wired PS/2 keyboard connector. I spent some time over the weekend working out the details of how to read keyboard data. I came up with a solution that uses a 74LS161 to count the incoming bits, and a GAL to shift the bits into a byte, and signal a CPU interrupt once all the bytes have been read. It should be pretty simple to use in practice. At first I was worried that my CPU wouldnt be able to process interrupts from the keyboard quickly enough, and Id need to implement some kind of queue for incoming keyboard bytes. After doing some testing, though, it turns out that theres always at least 3 milliseconds between bytes, even for the bytes in a multi-byte scan code for a single keypress. Thats an eternity in computing terms


http://www.scienceprog.com/interfacing-pc-keyboard-to-avr-microcontroller/

'KB > hardware soc' 카테고리의 다른 글

VME 버스 아키텍처  (0) 2008.11.12
VGA 구현  (1) 2008.11.12
ps/2 keyboard 동작  (0) 2008.11.07
GAL PLD programming  (0) 2008.11.05
어드레스 버스, 데이터 버스 TTL  (0) 2008.11.05
computer architecture  (0) 2008.11.05
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




PLDASM Programmable logic devices
http://www.it.lth.se/digp/PDF_files/pldasm.pdf

GALS for Electronics Hobby
http://www.uchobby.com/index.php/2008/03/30/gals-for-electronics-hobby/


Y = A*B*/C + /A*C + /B.  In this notation * means a logical AND, + means a logical OR, and / means a logical NOT.



EQN 텍스트 파일 포맷으로 GAL Equation을 작성
DOS프로그램 eqn2jed.exe를 통해서 바이너리 포맷의 JEDCOM이나 JED파일로 변환



예)
; 16-to-1 mux example 주석
CHIP mux G22V10   ; 칩 이름
; 핀 번호에 symbol이름 부여
d0=1 d1=2 d2=3 d3=4 d4=5 d5=6 d6=7 d7=8 d8=9 d9=10 d10=11 gnd=12
d11=13 d12=14 d13=15 d14=16 d15=17 q=18 a0=19 a1=20 a2=21 a3=22 nc=23 vcc=24


EQUATIONS
q = /a3*/a2*/a1*/a0*d0 +
    /a3*/a2*/a1*a0*d1 +
    /a3*/a2*a1*/a0*d2 +
    /a3*/a2*a1*a0*d3 +
    /a3*a2*/a1*/a0*d4 +
    /a3*a2*/a1*a0*d5 +
    /a3*a2*a1*/a0*d6 +
    /a3*a2*a1*a0*d7 +
    a3*/a2*/a1*/a0*d8 +
    a3*/a2*/a1*a0*d9 +
    a3*/a2*a1*/a0*d10 +
    a3*/a2*a1*a0*d11 +
    a3*a2*/a1*/a0*d12 +
    a3*a2*/a1*a0*d13 +
    a3*a2*a1*/a0*d14 +
    a3*a2*a1*a0*d15 +

'KB > hardware soc' 카테고리의 다른 글

VGA 구현  (1) 2008.11.12
ps/2 keyboard 동작  (0) 2008.11.07
GAL PLD programming  (0) 2008.11.05
어드레스 버스, 데이터 버스 TTL  (0) 2008.11.05
computer architecture  (0) 2008.11.05
stack based cpu  (0) 2008.11.05
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


오후 10:06 2008-11-05
어드레스 버스, 데이터 버스
조경민 bro@shinbiro.com
======================================================================


74244는 어드레스 버스 선에 사용
74245는 데이터 버스 선에 사용



http://kdaq.empas.com/qna/view.html?n=3472823
전자회로에서 버퍼란 말그대로 완충기 입니다.
X와 Y라는 전기적 성질이 다른 두 회로가 있을때
X와 Y드 회로 사이를 전기적 문제가 생기지 않도록 결합해주는 역할을 하는것을 버퍼라고 합니다.
버퍼는 출력 임피던스를 낮추어주는 효과만을 가진것을 이야기 하는것이 아니라
출력임피던스를 높이든 낮추든 관계없이 전기적으로 성질이 다른 두회로 간을
전기적 트러블이 없도록 연결해주는 회로나 부품을 말합니다.


한가지 예를 들어 CPU의 입출력 논리레벨전압이 3.0V이고 CPU에 연결되는
어떤 부품이 5.0V의 논리레벨로 동작하면 이 둘을 직접결합해서는 회로가 동작하지 않습니다.
중간에 3.0V 논리레벨전압을 5.0V 논리레벨 전압으로 바꾸어 주어야할 필요가 있는데
이때 중간에서 전압에대한 완충하는 역할을 하는 이회로를 버퍼라고 합니다.


출력임피던스 정합에 대한 예를 보면
X라는 회로가 입력에 큰전류을 요구하는 Y라는 회로에 X의 출력을 넘겨주어야 하는데
X라는 회로의 출력 내부저항이 너무 커서 출력전류가 충분하지 않아서 Y입력을
구동시킬수 없게 되는 경우가 있습니다.
역시 이럴때도 중간에 X의 출력전류를 강화시켜서 Y에 전달해주면 되겠지요.


앞의 예에서 전압매칭을 시켜주는 버퍼를 전압 버퍼라고 한다면
이렇게 전류를 매칭시켜주는것은 전류버퍼라 할수 있습니다.


실재 부품의 예에서 MAX232같은 RS-232버퍼의 예를 들수 있는데
이부품은 UART같은 씨리얼 통신제어칩이 5V의 디지탈 논리레벨이어서 멀리까지 전송하면 노이즈에
쉽게 영향을 받을수 있으므로 통신제어칩에서 나오는 5V출력은 +12V로 바꾸고 0V는 -12V로
바꾸어서 긴통신라인을 지날때 노이즈의 영향을 감소시켜 주는 역할을 합니다.


CPU의 버스라인에 붙어 각종 CPU주변 부품들과 연결하기 위한 74245나 74244같은것은 버퍼는
팬아웃(출력에 입력을 접속할수 있는 한도)을 크게 함과 동시에 터미네이터 저항으로
고주파에 의한 반사파의 영향을 줄이기 위한 목적으로 쓰입니다.
전류가 너무 작다면 반사파를 제거 하기 위해 터미네이터를 붙인다면 신호도 함께
감쇄되어 버려서 터미네이션을 못하게 되어 버리겠지요.



http://www.terms.co.kr/terminator.htm
terminator ; 터미네이터


터미네이터는 버스형 또는 데이지체인형 네트웍의 종단에 부착하는 장치이다. 터미네이터를 붙이는 목적은 신호를 흡수함으로써 그들이 다시 반향되지 않도록 하는데 있다. 이더넷 네트웍에는 버스 양단에 50 옴의 저항을 가진 터미네이터를 부착해야하며, SCSI 체인에는 체인의 맨 끝에 한 개의 터미네이터를 부착해야 한다.


 

'KB > hardware soc' 카테고리의 다른 글

ps/2 keyboard 동작  (0) 2008.11.07
GAL PLD programming  (0) 2008.11.05
어드레스 버스, 데이터 버스 TTL  (0) 2008.11.05
computer architecture  (0) 2008.11.05
stack based cpu  (0) 2008.11.05
FPGA & ASIC Synthesis, P&R Tool  (0) 2008.11.03
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


Computer architecture
http://www.rdrop.com/~cary/html/computer_architecture.html#misc

'KB > hardware soc' 카테고리의 다른 글

GAL PLD programming  (0) 2008.11.05
어드레스 버스, 데이터 버스 TTL  (0) 2008.11.05
computer architecture  (0) 2008.11.05
stack based cpu  (0) 2008.11.05
FPGA & ASIC Synthesis, P&R Tool  (0) 2008.11.03
homebuilt computer group  (0) 2008.11.03
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


stack based cpu

KB/hardware soc 2008.11.05 18:35

오후 6:03 2008-11-05
stack based cpu
조경민 bro@shinbiro.com
===================================================================


stack machine은 CISC나 RISC와 다르게 0-operand instruction set을 갖고 있다.
따라서 cisc나 risc와 다르게 code density가 높다.
mov r2, 1
mov r3, 2
add r1, r2, r3 할것을 아래처럼 짜게 된다.


1     # 1
2     # 1 2
+     # 3


단점은 operation은 항상 stack top의 값에 의존한다는 것이다.


어셈블리 프로그래밍 시 여러 범용 레지스터를 활용해서 여러 계산 컨텍스트를 진행하기 불편할 수 있다.


mov r1, 2    ; r1을 사용하는 컨텍스트
mov r3, 5    ; r3 계산 컨텍스트
inc r1       ; r1을 사용하는 컨텍스트
inc r3       ; r3 계산 컨텍스트


스택 어셈블리는 r1과 r3 컨텍스트를 분리해서 하기 힘들다.
2     # 2    ; r1 컨텍스트
1     # 2 1  ; r1 컨텍스트
+     # 3    ; r1 컨텍스트
5     # 3 5  ; r3 컨텍스트
1     # 3 5 1; r3 컨텍스트
+     # 3 6  ; r3 컨텍스트


장점은 항상 stack top의 값과 주소를 얻어오기 때문에 prediction이 쉽다.


stack based language FORTH를 그대로 cpu isa 어셈블리로 보면 아래와 같다.


stack 메모리 생성
dup                                     # a -- a a
drop                                    # a --
over                                    # a b -- a b a
swap                                    # a b -- b a
nip                                     # a b -- b


연산
+                                       # a b -- (a+b)
not                                     # a -- ~a
and                                     # a b -- (a&b)
or                                      # a b -- (a|b)
xor                                     # a b -- (a^b)
rshift1                                 # a -- (a>>1)


메모리 로드, 스토어
@                                       # a -- mem[a]
!                                       # a b -- (a written to mem[b])


I/O
in                                      # -- a
out                                     # a b --


Push immediate 값
N                                       # -- N


control flow 명령어
jump
call
return


점프나 콜은 stack top의 값에 의존하기 때문에 predicated하다.


다음은 예이다. 2 dup라는 함수는 스택 메모리에 a b a b를 생성


: 2dup                                  # a b -- a b a b
        over                            # a b a
        over;                           # a b a b


: 2drop                                 # a b --
        drop                            # a
        drop;                           #


: 1-    -1 +;                           # a -- a-1


: neg                                   # a -- -a
        not                             # ~a
                                        # and fall-through into...
: 1+    1 +;                            # a -- a+1


: -                                     # a b -- a-b
        neg                             # a -b
        +;                              # a-b


참고


1. Stack machine wikipedia
http://en.wikipedia.org/wiki/Stack_machine


2. Stack Computer Online book
http://www.ece.cmu.edu/~koopman/stack_computers/index.html


3. home brew stack computer
http://www.excamera.com/articles/20/mp3c.html

'KB > hardware soc' 카테고리의 다른 글

어드레스 버스, 데이터 버스 TTL  (0) 2008.11.05
computer architecture  (0) 2008.11.05
stack based cpu  (0) 2008.11.05
FPGA & ASIC Synthesis, P&R Tool  (0) 2008.11.03
homebuilt computer group  (0) 2008.11.03
프로토타입 보드 종류  (0) 2008.10.31
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



출처: http://www.cse.iitd.ernet.in/~anup/homepage/files/presentations/syntut.pdf


http://en.wikipedia.org/wiki/Logic_synthesis


크게 FPGA와 ASIC으로 나누어서 본다.
사실 CPLD와 PLD (GAL)도 보면 좋겠는데 ㅋㅋ



FPGA Synthesis Tool
----------------------------------------------
Synopsys, FPGA Express
 - Window에서 동작 느림


Xilinx, Xilinx Synthesis Tool (XST)
 - Xilinx device만 지원


Mentor Graphics, Leonardo Spectrum
 - Solaris, Window 에서 동작
 - http://www.mentor.com/products/fpga_pld/synthesis/leonardo_spectrum/


Synplicity, Synplify
 - 여러 FPGA device 지원, Window 동작


Xilinx, ISE
 - ISE Webpack은 윈도 무료 버전
 - http://www.xilinx.com/support/download.htm


Magma Design Automation, BlastFPGA
 - http://www.magma-da.com/Pages/BlastFPGA.html


Altera, Quartus II
 - http://www.altera.com/products/software/products/quartus2/qts-index.html


Lattice, ispLever


GeneXproTools
 - http://www.gepsoft.com/


FPGA Place and Route Tool
------------------------------------------------------
Xilinx ISE



Asic Synthesis
Asic 합성이 된다면 74 TTL등 내가 원하는 library를 설정해서 합성이 될 수 있음을 의미한다.
------------------------------------------------------
Synopsys Design Compiler


Cadence BuildGates
 - Cadence RTL copmpiler로 대채중


Mentor Graphics, Leonardo Spectrum
 - 잘 안쓰이려 함


Cadence RTL compiler Ultra


Mentor Graphics Precision RTL


Magma Design Automation, BlastCreater
http://www.magma-da.com/Pages/BlastCreate.html


IBM, BooleDozer
http://domino.research.ibm.com/tchjr/journalindex.nsf/0b9bc46ed06cbac1852565e6006fe1a0/5588d005a20caff385256bfa0067f992?OpenDocument


Asic Place and Route Tool
-------------------------------------------------------
Synopsys Apollo


Cadence Silicon Ensemble Familty (Qplace, Wroute and Groute)
 - 느림


Cadence SoC Encounter Family (Nanoroute, Amoeba)
 - GNU/Linux, 빠름, black box 수준 finder level control힘듦


Mentor Graphics ICStation



 

'KB > hardware soc' 카테고리의 다른 글

computer architecture  (0) 2008.11.05
stack based cpu  (0) 2008.11.05
FPGA & ASIC Synthesis, P&R Tool  (0) 2008.11.03
homebuilt computer group  (0) 2008.11.03
프로토타입 보드 종류  (0) 2008.10.31
EDA 툴들  (0) 2008.10.31
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



Z80 homebuilt computer
http://groups.google.com/group/n8vem


옛날 빈티나는 컴퓨터 (z80) 관련 정보
http://www.vintage-computer.com/vcforum/

veroboard에 작성한 TTL cpu
http://www.mit.edu/~ebakke/anitra/article.html

 

'KB > hardware soc' 카테고리의 다른 글

stack based cpu  (0) 2008.11.05
FPGA & ASIC Synthesis, P&R Tool  (0) 2008.11.03
homebuilt computer group  (0) 2008.11.03
프로토타입 보드 종류  (0) 2008.10.31
EDA 툴들  (0) 2008.10.31
Verilog로 GAL 프로그래밍 하기  (0) 2008.10.31
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


출처: http://www.scienceprog.com/prototype-board-types/

- solderless 납땜안하는 브레드 보드
- 납땜하는 프로토보드 (프로토타입 PCB 만능기판)
- 납땜안하는 Wire Wrap보드
- 에칭해서 만드는 보드 (매직으로 그려서 제이염화철에 담금)

If you are just starting to take an interest in to electronics, this is good things to get to know what type of prototyping boards can be used. There can be four types of prototype boards:




  • Solderless breadboard- where connections are made by using jumpers;


Breadboard




  • Soldered protoboard – uses soldered jumpers and drilled holes;


protoboard




  • Wire wrap boards – special soldered breadboard or wire wrap board;









Wire-Wrap




  • Etched circuit board- requires drawing and etching with chemicals.


PCB board


What type of proto-board to choose depends of what type if schematic you are prototyping. For instance it is hard to work with SMT elements using breadboard, but this problema can be solved when using soldered proto-board. Soldered protobord takes more time to prepare comparing to solderless where connections are done by using jumpers. In solderless boards it is easy to repair mistakes.


Personally I like breadboards for quick non complex prototyping. If my design is more complex and includes SMT elements then I prefer to use etched boards.

'KB > hardware soc' 카테고리의 다른 글

FPGA & ASIC Synthesis, P&R Tool  (0) 2008.11.03
homebuilt computer group  (0) 2008.11.03
프로토타입 보드 종류  (0) 2008.10.31
EDA 툴들  (0) 2008.10.31
Verilog로 GAL 프로그래밍 하기  (0) 2008.10.31
Wire wrapping  (0) 2008.10.31
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


EDA 툴들

KB/hardware soc 2008.10.31 19:13

여러 EDA 툴
http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Electronics/Programs
http://www.freebyte.com/cad/cad.htm
http://www.eehomepage.com/query.php?Find=schematic&sortName=Type
http://eda-rosa.blogspot.com/
http://www.opencircuits.com/Techniques#Software_design_tools
http://en.wikipedia.org/wiki/Comparison_of_Free_EDA_software


Vero board (Stripboard) 용 설계 프로그램
---------------------------------------------------------------


Stripboard Magic
http://www.marlwifi.org.nz/other/stripboard-magic


StripBoard Designer


VeeCAD Stripboard Editor
http://veecad.com/


http://www.virtualworkbench.com/



prototype PCB(만능기판)
-----------------------------------------------------------------


PCB용 설계 프로그램
---------------------------------------------------------------
http://www.diptrace.com/
PCB Layout with efficient auto-router, Schematic
Capture, Component and Pattern Editors


EAGLE PCB auto route
http://cadsoft.de/Tour/tour00.htm
한글교육사이트
http://nohau.com.ne.kr/eagle.htm


OrCAD
Verilog 임포트가능한 PCB 에디터
http://www.orcad.net/products/products1.html


KICAD
http://www.lis.inpg.fr/realise_au_lis/kicad/index.html


gEDA
http://www.geda.seul.org/tools/index.html



http://taw.chaosforge.org/ttl-cpu/


free design
http://www.opencollector.org/Whyfree/freedesign.html

electric
자바로작성됨, verilog/schematic, route, Win32/Mac/Linux
verilog import했는데 TTL 부품 매핑어케하는거야?
http://www.gnu.org/software/electric/electric.html
http://www.staticfreesoft.com/productsFree.html

FreePCB
schematic, route, Win32
http://www.freepcb.com/


ExpressPCB
schematic, route, Win32
http://www.expresspcb.com/ExpressPCBHtm/Free_cad_software.htm


TinyCAD
schematic, 74 부품(몇개없는듯), png출력, Win32
http://tinycad.sourceforge.net/downloads.html


VUTRAX
Schematic, route, Win32/Linux, 무료는 256 component pins제한
http://www.vutrax.co.uk/


XCircuit
그냥 회로 그리는 툴인듯
http://opencircuitdesign.com/xcircuit/

'KB > hardware soc' 카테고리의 다른 글

homebuilt computer group  (0) 2008.11.03
프로토타입 보드 종류  (0) 2008.10.31
EDA 툴들  (0) 2008.10.31
Verilog로 GAL 프로그래밍 하기  (0) 2008.10.31
Wire wrapping  (0) 2008.10.31
Signal Propagation & Integrity  (0) 2008.09.24
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


Verilog로 GAL 프로그래밍 하기
bro@shinbiro.com 조경민
=====================================================



Lattice ispLEVER


1. File/New project
Project type: Schematic/Verilog HDL
2. Select Device type
device type: GAL Device family -> GAL22V8 -> 24PDIP -> -15 (speed grade)


3. Import verilog


4. Create JEDEC file


.JED 파일 갖고 GAL programmer로 굽는다.

'KB > hardware soc' 카테고리의 다른 글

프로토타입 보드 종류  (0) 2008.10.31
EDA 툴들  (0) 2008.10.31
Verilog로 GAL 프로그래밍 하기  (0) 2008.10.31
Wire wrapping  (0) 2008.10.31
Signal Propagation & Integrity  (0) 2008.09.24
clk gating negedge  (0) 2008.08.27
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


Wire wrapping

KB/hardware soc 2008.10.31 11:06

https://www.pjrc.com/tech/8051/dev-board-wirewrap.html


http://www.tecratools.com/pages/tecalert/wirewrap_guide.html


http://www.williamson-labs.com/prototype-lt.htm



강추 블루툴, 실버 툴 둘다 설명됨.
http://www.me.umn.edu/courses/me2011/robot/wrap/wrap.html




 









Tec-Alert Newsletter


Guide to Wire Wrapping

tool kits, tool cases

In 1952, a new technology was discovered by The Bell Laboratory, Western Electric Company to form a consistent gas-tight electrical connection by tightly wrapping wire around a terminal with two sharp edges. This advanced technology would open the door to meet the needs of more complex electronic equipment, allowing for more terminals in less space. Since then, the electronic, telecommunication and aviation industries have recognized wire wrapping as the most reliable, stable and common method of connecting signal and power terminals in today’s advanced work force.

Wire Wrap Guide:
How to Make Wire Wrapped Connections
Helpful Wire Wrapping Tips
Common Wire Wrapping Problems


How to Make Wire Wrapped Connections

tool kits, tool cases


Step 1: Insert the pre-stripped wire into the wire slot of the wrapping bit.

Step 2: Anchor the wire in the notch of the wrapping sleeve.

Step 3: Insert the terminal into the center hole of the wrapping bit.

Step 4: Activate the wire wrapping tool. This rotates the wrapping bit and wraps the wire around the terminal.



Helpful Wire Wrapping Tips

 Coiling the wires around the sharp corners of a .025 in. square receptacle post creates a wire wrapped termination.

 A clean metal-to-metal contact between the wire and the post can be achieved by bending the wire around the sharp corner, breaking the oxide layer of both surfaces, thus revealing an oxide-free surface.

 Try to avoid kinks in the wire when stripping.

 Don’t use wire that will break easily.

 The minimum number of turns is based on wire gauge and the type of wrap.

tool kits, tool cases

 Standard Wrap = Coils bare wire only around the post

 Modified Wrap = Coils the wire and a portion of insulation increasing the ability to withstand vibration.

 When using wire wrap guns, make sure to not hold too tightly against the board to prevent bunched up, messy coils around the base of the post.

 Holding a wrap gun with too little pressure can result in spaces between the coils on the post, making the post visible.

 Pulling the trigger of the wrap gun too hard will result in broken wire inside the gun barrel.

 “Backforce” features on electric wrap guns are important to prevent against overwrapping from excessive force.

tool kits, tool cases

 Proper Daisy Chain – wiring several points together can be easy if done correctly. Figure A and B show the proper and improper way to daisy chain. If a mistake was made, the entire wire would have to be unwrapped in Figure A. In contrast, Figure B you would have at the most three wires to unwrap to remove any wire in the chain. This is the preferred approach.



Common Wire Wrapping Problems:

tool kits, tool cases

 The Overwrap - Don’t press too hard! Wires will slip over the preceding turn if you push down too hard on the wrap tool while turning. Make sure to practice to ensure a quality connection.


tool kits, tool cases

 Insufficent Turns – Push wire all the way into wire slot. Improperly feeding of wire into the wire slot of the bit results in insufficient turns of wire for regular wraps or insufficient insulation turns for modified wraps.


tool kits, tool cases

 Spiral Wrap/ Open Wrap – Don’t remove the tool too quickly! Wire turns more than 0.005 inches apart, called spiral or open wraps, are caused by too rapid a removal of the wrapping tool.


tool kits, tool cases

 Pigtails – Select the proper bit and sleeve. When a wire has not been completely wrapped the result is a “pigtail”. This results if the size of the bit is improperly matched to the terminal diagonal.

'KB > hardware soc' 카테고리의 다른 글

EDA 툴들  (0) 2008.10.31
Verilog로 GAL 프로그래밍 하기  (0) 2008.10.31
Wire wrapping  (0) 2008.10.31
Signal Propagation & Integrity  (0) 2008.09.24
clk gating negedge  (0) 2008.08.27
Propagation delay between CDC FF  (0) 2008.08.26
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


오후 3:13 2008-09-24
조경민 bro@shinbiro.com
Signal Propagation & Integrity
=========================================================


lane별 선의 길이가 다르면 전기 신호가 도달하는 시간이 달라진다.
선의 길이가 같더라도 선간의 임피던스가 다르면 도달하는 시간이 달리진다.


4Gbps 1M 선들 간에 임피던스가 +-5%정도면 2bit정도 선간의 interlane skew가 발생 가능하다.



결론
각 lane 별로 신호가 몇 비트 씩 밀려 올 수 있다.



참조:
[1]. High-Speed Digital Design A Workshop in Black Magic with Dr. Howard Johnson
http://www.sigcon.com/seminars/seminarHSDD.htm


[2] High Speed Signal Propagation, Book, Dr Howard Johnson


[3] ASIC,PCB Design,SOC and Signal Integrity
http://analogstuff.net/2007/06/asicpcb-designsoc-and-signal-integrity.html

'KB > hardware soc' 카테고리의 다른 글

Verilog로 GAL 프로그래밍 하기  (0) 2008.10.31
Wire wrapping  (0) 2008.10.31
Signal Propagation & Integrity  (0) 2008.09.24
clk gating negedge  (0) 2008.08.27
Propagation delay between CDC FF  (0) 2008.08.26
cpu design  (0) 2008.04.07
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


티스토리 툴바