1. 문제 및 설명
- 4비트 시프트 레지스터를 설계하시오.
- areset: 시프트 레지스터를 0으로 리셋한다.
- load: 시프트 동작 대신 data[3:0] 값을 시프트 레지스터에 로드한다.
- ena: 우측 시프트 동작을 수행한다.
- q: 시프트 레지스터의 현재 내용
2. 모듈 정의
module top_module(
input clk,
input areset, // async active-high reset to zero
input load,
input ena,
input [3:0] data,
output reg [3:0] q);
3. 답
module top_module(
input clk,
input areset, // async active-high reset to zero
input load,
input ena,
input [3:0] data,
output reg [3:0] q);
always@(posedge clk, posedge areset)
begin
if(areset)
begin
q <= 4'b0;
end
else
begin
if(load)
q <= data;
else if(ena)
q = q >> 1;
else
q <= q;
end
end
endmodule
'Verilog > HDLbits' 카테고리의 다른 글
| [HDLBits] Shift18 (0) | 2026.01.19 |
|---|---|
| [HDLBits] Rotate100 (0) | 2026.01.19 |
| [HDLBits] Count clock (0) | 2026.01.14 |
| [HDLBits] Countbcd (0) | 2026.01.14 |
| [HDLBits] Exams/ece241 2014 q7b (0) | 2026.01.14 |