전공공부 · 컨트롤로직설계
Mealy 101 검출기와 8-to-1 MUX 소스 다시 읽기
2026-08-01 · 수정 2026-08-01 · Hyeongrok Ryu
저장된 VHDL에서 overlapping 101 상태전이와 decoder 기반 MUX 구조를 다시 따라간 기록.
- Series
- VHDL 디지털논리 기초 · 7
- 유형 / 난이도
- study-note · beginner
- Tools
- VHDL, Vivado
이 글에서 순서대로 다시 확인하는 학습 포인트입니다.
이 글에서 순서대로 다시 확인하는 학습 포인트입니다.
이 글에서 순서대로 다시 확인하는 학습 포인트입니다.
이 글에서 순서대로 다시 확인하는 학습 포인트입니다.
소스에서 다시 시작
이번에는 2024년에 저장한 mealy.vhd, mealy_tb.vhd, mux_8to1.vhd를 차례로 읽었다. Vivado가 만든 cache와 실행 파일보다 직접 작성한 entity, architecture, testbench 입력을 먼저 봤다.
세 상태로 101 찾기
상태 이름은 단순했다. st0는 아직 유효한 앞부분이 없고, st1은 마지막 입력이 1이며, st2는 마지막 두 입력이 10인 상태다. st2에서 1을 받으면 101이 완성되어 dout이 1이 된다. 동시에 st1로 돌아가므로 마지막 1을 다음 패턴의 첫 1로 다시 쓸 수 있다.
| 현재 상태 | 입력 0 | 입력 1 | 출력 1 조건 |
|---|---|---|---|
| st0 | st0 | st1 | - |
| st1 | st2 | st1 | - |
| st2 | st2 | st1 | 입력 1 |
st2 → st1 전이에 들어 있다는 점이 보였다.01010101 따라가기
저장된 testbench는 reset을 내린 뒤 01010101을 20 ns 간격으로 넣는다. 상태표대로 종이에 따라가면 네 번째, 여섯 번째, 여덟 번째 입력에서 101이 완성된다. 이 계산은 코드의 전이 규칙을 손으로 확인한 것이며, 이번 정리에서 GHDL이나 Vivado simulation을 다시 돌리지는 않았다.

MUX를 독립형으로 쓰기
원래 mux_8to1.vhd는 dec_3to8 component와 AND/OR 조합으로 8개 입력을 선택한다. 저장 묶음에서는 decoder의 VHDL 원본을 찾지 못했다. 그래서 같은 진리표를 공부할 때는 의존성이 없는 with select 형태로 다시 적어봤다.
with sel select
y <= a when "000",
b when "001",
c when "010",
d when "011",
e when "100",
f when "101",
g when "110",
h when others;
다시 실행할 때 볼 것
다음 실행에서는 clock edge 직후의 present_state, 조합논리의 next_state, dout을 한 파형에 놓을 생각이다. MUX는 먼저 독립형 예제를 모든 선택값으로 확인한 뒤, decoder 원본을 다시 찾으면 구조형 구현과 출력을 비교할 예정이다.
이전 글과 다음 글
사용한 자료
- Controller Logic coursework VHDL source — local-coursework; state transitions and source structure