Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ring counter
- D Flip Flop
- Pspice
- ATMEGA128A
- gpio
- test bench
- LED
- verilog
- Algorithm
- behavioral modeling
- Edge Detector
- dataflow modeling
- Linked List
- DHT11
- soc 설계
- Recursion
- atmega 128a
- KEYPAD
- uart 통신
- half adder
- prescaling
- i2c 통신
- BASYS3
- pwm
- stop watch
- java
- vivado
- structural modeling
- FND
- hc-sr04
Archives
- Today
- Total
거북이처럼 천천히
Verilog RTL 설계(7월 12일 - 1, 비동기 카운터까지 복습) 본문
1. Combinational Logic Circuit
- Verilog에서 증감 연산자, 복합 대입 연산자를 지원하지 않는다.
- 비교기는 가산기처럼 단순 병렬 연결함으로서 2bit 이상의 비교기를 설계할 수 없다.
- 따라서 2bit 이상의 비교기는 별도로 설계해야 한다.
- 하지만, 32bit 비교기를 설계한다면 32 이하 비트에서 비교를 할 때, 특정 비트만 값을 넣고,
나머지 bit에 대해서 0으로 채워줌으로서 32bit 비교기를 통해 비교 연산 수행 가능하다. - Decoder와 Encoder도 가산기처럼 병렬 연결하여 사용할 수 있다.
- DEMUX를 구현에서 선택선에 의해 선택 받지 못한 출력선에 대해서 0을 출력하도록 설계했다.
- 선택 받지 못한 출력선에 대해서 0으로 출력하지 않도록 설계한다면 해당 출력선들은 임피던스
상태를 갖게 된다.
2. Sequential Logic Circuit
- RTL : Register Transfer Level
- LUT : Look Up Table
- FPGA는 Gate가 없는대신 MUX를 갖고 있기 때문에 각각의 Gate의 진리표를 토대로 MUX를 Gate처럼 동작하도록 설계할 수 있으며, 이를 LUT 이라 한다. - Q) JK Flip Flop으로 어떻게 D Flip Flop을 설계하는가?
A) SR Flip Flop에서 D Flip Flop을 설계하는 것 처럼 JK Flip Flop에서 두 개의 입력을 받는 것이 아닌 하나의 입력을 받고, 하나의 입력값에 대해서 Flip Flop내에서 Invertor를 이용하여 반전된 입력값을 얻어 서로다른 두개의 입력값을 얻는다. - Sensitive variable 을 Sensitive list 라고도 부른다.
- Flip Flop의 enable 값과 reset 값을 정의하지 않으면 자동적으로 enable 값은 Vcc, reset 값은 GND로 초기화 된다.
★★★★★★★★★★★
- Q) D Flip Flop을 통해 T Flip Flop을 구현하면 RTL analysis와 Synthesis 회로가 서로 다름을 확인할 수 있다.
왜 같은 설계에 대해서 서로 다른 회로가 나타나는가? - A) D Flip Flop을 통해 T Flip Flop을 구현하였을 때, RTL analysis, Synthesis를 통해 그려진 회로 다음과 같다.
두 회로 모두 D Flip Flop을 기반으로 T Flip Flop을 설계한 것이기 때문에 T Flip Flop이다. 하지만, 두 논리 회로가 다른 이유는 RTL Analysis와 Synthesis 단계에서 회로의 표현 방식 및 최적화 수준이 다르기 때문이다.
[1] RTL analysis
- RTL Analysis는 코드의 논리적 구조를 가장 단순하고, 직관적으로 표현한 회로를 만들어 준다.
- RTL analysis는 복잡한 최적한 보다는 코드의 논리 그대로 반영한 단순한 회로 생성에 초점을 두고 있다.
- 따라서 설계자는 의도대로 회로가 구성되었는지 여부를 쉽게 확인할 수 있다.
[2] Synthesis
- Synthesis는 실제 하드웨어 구현을 위해 최적화 작업을 수행한다.
- 따라서 Vivado가 판단하기를 "D Flip Flop을 기반으로 T Flip Flop을 구현함에 있어 T와 Q를 XOR 하는 것은 NOT gate를 사용한 것 보다 효율적이다." 라고 판단한 것이다.
[3] 결론
- 두 회로 모두 동일한 기능을 수행하지만, Synthesis 단계에서는 최적화한 회로를 제공하기 때문에 실제 하드웨어 상에서 더 효율적인 성능을 제공한다.
★★★★★★★★★★★
- Q) Synthesis 단계에서 LUT3 는 무엇을 의미하며, 어떤 진리표 및 동작을 하는가?
- A) LUT3는 입력 값으로 T (Toggle), Q (출력) 을 입력 받는다. (Enable 은 제외)
T값에 따라 출력 값, Q를 반전시킬 여부를 결정하여 그에 대한 출력 값을 다시 D Flip Flop의 D에
넣어야 하기 때문에 다음과 같은 진리표를 가질 것이다.
T (Toggle) | Q (Output) | Output of LUT |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
그러나, FPGA에는 Gate가 없기 때문에 이를 LUT (Look Up Table)로 구현하면 다음과 같다.
즉, D Flip Flop을 기반으로 T Flip Flop을 설계하기 위해 LUT3을 사용했으며, LUT3의 입력 값으로 T(Toggle), Q (출력)을 받고, 원하는 T Flip Flop으로 동작시키 위해서 LUT3의 진리표를 갖으며, 진리표를 기반으로 LUT을 설계한 결과는 위와 같이 나타난다.
이를 자세히 보면 XOR Gate와 동일한 기능을 수행하는 LUT임을 확인할 수 있다.
'RTL Design > Verilog RTL 설계' 카테고리의 다른 글
Verilog RTL 설계(7월 12일 - 3, 동기식 카운터 - 2) (2) | 2024.07.14 |
---|---|
Verilog RTL 설계(7월 12일 - 2, 동기식 카운터 - 1) (0) | 2024.07.13 |
Verilog RTL 설계(6월 25일 - 3, Counter) (0) | 2024.06.29 |
Verilog RTL 설계(6월 25일 - 2, T Flip Flop) (0) | 2024.06.28 |
Verilog RTL 설계(6월 25일 - 1, J-K Flip Flop) (0) | 2024.06.27 |