21 / 24 · 실습
시프트 레지스터 실습
직렬 입력과 q의 변화를 함께 추적합니다.
내용은 무료로 볼 수 있습니다. 수강 신청하면 학습 기록을 저장할 수 있어요.
예제 파일 준비
Digital Design Studio의 Desktop 프로젝트와 정상 실행 권한을 준비하세요. 각 예제는 별도 폴더의 rtl/top.sv로 저장합니다.
module top (
input logic clk,
input logic rst,
input logic din,
output logic [2:0] q
);
// Old q[1:0] and din are captured together at each rising edge.
always_ff @(posedge clk)
if (rst) q <= 3'b000;
else q <= {q[1:0], din};
endmodule
실행 방법
New analysis에서 Two-state single-clock v1을 선택하세요. Clock port는 clk, 주기는 1000ps입니다. 아래 값으로 Preflight 후 Run RTL simulation을 실행하고 결과를 비교하세요.
- 초기 레지스터 값 (LSB부터)
- [false,false,false]
- Reset port
- rst · Active high · 1 cycle
- Maximum cycles / time
- 5 / 5000ps
시뮬레이션 입력
각 시점에 회로의 입력 신호에 넣을 값을 정한 파일입니다. 파일 이름을 눌러 내용을 펼치거나, 다운로드해 실습에 사용하세요.
[
{
"inputs": {
"din": [
false
]
}
},
{
"inputs": {
"din": [
true
]
}
},
{
"inputs": {
"din": [
false
]
}
},
{
"inputs": {
"din": [
true
]
}
},
{
"inputs": {
"din": [
true
]
}
}
]
결과 비교
5 cycles · q=011. 상승 에지마다 000 → 001 → 010 → 101 → 011 순서가 됩니다.
이 실습은 0/1 단일 클록 RTL을 사용합니다. #delay·initial·X/Z 테스트벤치는 포함하지 않습니다. 학습 완료 표시는 학습 기록이며 실제 시뮬레이션 결과를 뜻하지 않습니다.
✓ 학습 완료