2023. 6. 13. 01:24ㆍFPGA/Verilog
- Verilog ( = Hardwate Description Language )
- 하드웨어를 표현하는 언어 / 반도체를 설계하기 위한 언어 / 디지털회로를 설계
- ic칩 설계를 위해 사용한다
- 베릴로그 디자인(Verilog Design) == 디지털 회로 디자인(Digital Circuit Design)
- FF은 존재하지 않는다 -> FF의 기능을 하는 트랜지스터가 존재할 뿐
- 사람이 베릴로그 코드를 작성하면 컴퓨터가 해당 베릴로그 코드를 참고하여 회로도를 작성하낟
- 베릴로그를 통해 얻을 수 있는 장점
- 하드웨어 구조 이해 / 최근의 소프트웨어흐름은 하드웨어의 성능과 밀접한 관계를 가지고 있다.
- 새로운 가능성 추구 / 기존의 MCU로는 구현할 수 없는 기능을 구현 가능
- 원가 절감
- FPGA를 사용하지 않고 NOT GATE, AND GATE를 사용하여 설계를 하는 사람 존재
- 만약, 보드 변경 시 게이트 변경이 번거롭다
- 이때, 베릴로그를 사용하면 변경이 용이
- 새로운 개발 영역 확장
- Digital Logic
출력의 기준에 따라 Combinational Logic과 Sequential Logic을 구분
- Combinational Logic
- "지금(현재)"의 입력 로직값을 기준으로 출력 값이 결정되는 회로
- 메모리 기능 존재하지 않는다.
- Sequential logic
- 현재 입력로직 + 이전의 상태값을 포함하여 출력 값이 결정되는 회로
- 메모리 기능 존재한다.
- 출력값을 결정할 때는, 입력측의 로직뿐만 아니라 그 이전 출력상태의 로직도 포함하여 그 다음값을 출력한다.
- 현재의 값은 알 수 있지만 과거의 값을 알려면 그 값을 기억해야 한다
- 과거의 값을 기억하기 위해 메모리가 필요.
- NOT GATE
실제로 실로콘 웨이퍼에 식각이 될 때, 식각되어져야 하는 트랜지스터의 개수가 가장 적은 로직 게이트이다.
(가장 적은 트랜지스터의 조합으로 이루어진 게이트)
NOT GATE는 트랜지스터의 조합으로써, 해당 트랜지스터들로 NOT GATE의 진리표 기능을 구현한다.
- INPUT이 트랜지스터 gate에 입력된다.
- P - ch Mosfet,
- Vdd 전류 소스가 p-ch source에 연결되어 있다.
- gate = 0일 때, drain에 연결되어 전류가 output으로 흐른다.
- P - ch Mosfet은 전류가 source -> drain으로 흐르게 된다.
- N - ch Mosfet
- gate = 1일 때, 전류가 흐르게 된다.
- drain -> source로 흐른다.
- INPUT = 0
- P - ch Mosfet은 Vdd가 source -> drain으로 전류가 흘러 OUTPUT으로 간다.
- N - ch Mosfet는 dranin -> source으로 흐를 수 없다. OFF 되어있는 상태
- INPUT = 0일때, OUTPUT = 1이 출력
- INPUT = 1
- P - ch Mosfet는 OFF가 되어 source -> drain으로 전류 흐를 수 없다.
- N - ch Mosfet는 ON 되어 drain -> source로 전류 흐르게 된다. GND로 전류가 흐르는 상태.
- 현재 Vdd의 전류는 OUTPUT으로 흐르지 못하고, OUTPUT의 전류를 GND로 계속 흘러보내주고 있어, OUTPUT의 전류가 남아나지 않는상태. (GND와 OUTPUT이 연결된 상태)
- 이때 OUTPUT 단자에 외부 배터리(+단자를 OUTPUT으로 연결)를 연결하게되면 배터리는 OUTPUT으로 역으로 흐르게 되어 회로가 합선(쇼트)된 것 과 같게 된다.
- OUTPUT모드일 때, OUTPUT LOGIC= 0을 하는 것은 굉장히 위험하다.
- OR GATE
OR GATE는 NOR GATE와 NOT게이트가 합쳐진 회
로인 것을 알 수 있다.
-> 실제 반도체에서는 LOGIC 게이트마다 사용되는 트랜지스터 갯수가 달라지고, 트랜지스터 갯수각 달라지기때문에 사용되는 소비전력이 달라지고, 작동하는데 소비되는 시간적인 요소들 또한 달라지게 된다.
화살표가 밖(GATE단자의 반대방향으로)으로 되어있는 것은 P - ch Mosfet, 안으로 되어있는 것은 N - ch Mosfet.
Inverter 회로 = NOT GATE회로와 동일
게이트 입력(붉은색)과 게이트 출력(푸른색)은 물리적 거리가 가깝다.
-> 신호의 전달이 빠르다.
Inverter에서 연산되는 시간 = 0.1ms / NOR gate에서 연산되는 시간 = 0.1ms
->OR gate에서 연산되는 시간은 0.2ms가 된다
->이 시간을 "전파 지연 시간(propagation delay time)"이라 한다.
INPUT A = 0, B = 0일때
- Q1 = 0, Q2 = 0, Q3 = 0, Q4 = 0이 gate로 입력된다.
- P - ch Mosfet는 gate가 0일때 도통된다. -> Q1, Q2가 도통된다.(Vdd가 흐른다)
- N - ch Mosfet는 gate가 0일때 도통되지 않는다. -> Q3, Q4로 전류가 흐를 수 없다. -> 인버터의 gate입력으로 흐르게 된다.
- Q5 = 1, Q6 = 1일 때, Q5는 도통되지 않고, Q6은 도통되므로 GND로 전류가 흐르게된다.
- Timing Diagram (WAVE FORM)
LOGIC값에 대한 시간 정보가 나타나있다.
가상선을 그어 체크하고자 하는 시점의 파형을 체크하면 된다.
NOR GATE는 트랜지스터 4개로 구성된 게이트.
OR GATE는 NOR GATE에 NOT이 붙는 게이트.
-> OR GATE는 NOR + NOT으로 만들어지는 게이트.
(NOR GATE가 OR GATE + NOT게이트로 이루어진 게이트가 아니다.)
-> NOR GATE가 디지털 게이트를 세길 공간적 여유가 더욱 있다.
- NOR GATE
INPUT A = 0, B = 0일때
- Q1 = 0, Q2 = 0, Q3 = 0, Q4 = 0이 gate로 입력된다.
- Q1, Q2는 도통되고, Q3, Q4는 도통되지않아 OUTPUT으로 Vdd의 전류가 흐르게 된다.
- Timing Diagram (WAVE FORM)
- NAND GATE, AND GATE
AND GATE는 NAND + NOT로 이루어진 LOGIC GATE인 것을 확인할 수 있다.
NAND GATE가 실제로 식각될 때는 트랜지스터의 갯수가 4개 필요
AND GATE는 식각될 때 INVERTER를 추가해야하기 때문에 트랜지스터의 갯수가 4 + 2로 6개가 필요하게 된다.
NAND GATE INPUT A = 1, B = 1일때
- Q1, Q2는 gate입력이 1일때 도통되지 않는다.
- Q3, Q4는 도통되어도 잔류전류(플로팅전류)가 남아있어도 전부 GND로 흐르게된다.
'FPGA > Verilog' 카테고리의 다른 글
Verilog Reperesentation of Digital Logic 3 (0) | 2023.06.13 |
---|---|
Digital Logic 3 (0) | 2023.06.13 |
Verilog Reperesentation of Digital Logic 2 (0) | 2023.06.13 |
Digital Logic2 (0) | 2023.06.13 |
Verilog Reperesentation of Digital Logic 1 (0) | 2023.06.13 |