1. continuous assignment 와 procedural blocks의 차이점은?
We use procedural blocks such as the always block to execute code sequentially in verilog. In contrast, continuous assignment is executed in parallel.
2. 왜 Sensitivity lists를 always block 에서 사용하나?
They define the list of signals that an always will wait on before resuming the execution of code.
3. blocking 과 non-blocking 할당의 차이점은?
When we use blocking assignment all signal assignments take effect immediately. In contrast, when we use non-blocking assignment our signals are updated using assignment scheduling.
4. continuous 할당에서 어떤 type의 할당을 사용할 수 있나? procedural blocks에서는?
- When we write code using continuous assignment, we can only use blocking assignment.
- We can use both types of assignment within a verilog procedural block. However, non-blocking assignment normally results in a sequential implementation after synthesis. In contrast to this, blocking assignment normally results in a combinational implementation.
5. 4 input NAND를 always block으로 설계
always @(*) begin
nand_out = ~ (a & b & c & d);
end
6. 아래 그림의 코드 작성
always @(posedge clock) begin
q_dff1 <= (q_dff2 | q_dff3);
q_dff2 <= q_dff1;
q_dff3 <= q_dff2;
end
'Verilog HDL > 1. Verilog HDL Basic (문법)' 카테고리의 다른 글
[Testbench] 1. 테스트벤치의 구조 (0) | 2024.01.10 |
---|---|
[Verilog Tutorial] level-5 Using the Always Block 모음 (0) | 2024.01.10 |
[Using the Always Block] 3. Always Block 과 조합 회로 (0) | 2024.01.10 |
[Using the Always Block] 2. Blocking, Non-Blocking 할당 (0) | 2024.01.10 |
[Using the Always Block] 1. Always block 이란? (1) | 2024.01.10 |