1. 문제 및 설명
A. 1입력 1출력 직렬 2의 보수기의 밀리 상태 머신을 설계하시오
- 출력(z): 입력된 숫자에 대한 2의 보수를 출력합니다.
- 입력(x): 숫자의 최하위 비트부터 시작하여 클락 주기마다 한 비트씩 입력됩니다.
- 동작 제어: 리셋 신호가 해제되면 변환을 시작하고, 리셋 신호가 활성화 되면 동작을 멈춥니다.
2. 요구사항
A. 1입력 1출력 직렬 2의 보수기의 밀리 상태 머신을 설계하시오.
- 데이터 길이: 이 머신의 임의의 길이를 가지 입력 숫자를 처리할 수 있어야 합니다.
- 리셋: 비동기 리셋 기능이 필요합니다.
3. 문제 풀이
A. 2의 보수
- 컴퓨터가 음수를 표현하고 계산하기 위해 사용하는 방식
- 계산법
- 1. 비트 반전
- 2. '1' 더하기
- ex): +3 (이진수): 0011
- 1단계 (비트 반전): 1100
- 2단계 (1 더하기): 1101 (← 이것이 컴퓨터가 인식하는 -3입니다!)
- ex): +3 (이진수): 0011
B. State
- A: 첫 '1' 입력 전 '0' 은 입력을 그대로 출력/입력 첫 '1' 은 입력을 그대로 출력
- B: 입력을 반전 시켜서 출력

4. 모듈 정의
module top_module (
input clk,
input areset,
input x,
output z
);
5. 답
module top_module (
input clk,
input areset,
input x,
output z
);
parameter A = 1'b0, B = 1'b1;
reg state, next_state;
assign z = ((state == A)&(x == 1))|((state == B)&(x == 0));
always@(*)
begin
case(state)
A: next_state = x?B:A;
default: next_state = state;
endcase
end
always@(posedge clk, posedge areset)
begin
if(areset)
begin
state <= A;
end
else
begin
state <= next_state;
end
end
endmodule
'Verilog > HDLbits' 카테고리의 다른 글
| [HDLBits] Exams/2014 q3bfsm (0) | 2026.05.17 |
|---|---|
| [HDLBits] Exams/2014 q3fsm (0) | 2026.05.17 |
| [HDLBits] Exams/ece241 2014 q5a (0) | 2026.05.10 |
| [HDLBits] Exams/ece241 2013 q8 (0) | 2026.05.10 |
| HDLbits[HDLBits] Fsm hdlc (0) | 2026.05.10 |