반응형
1. ROM (READ ONLY MEMORY)
ROM : 상수 형태로 저장된 data의 address를 변화시키면서 설계자의 사용 요구에 따라 읽을 수 있는 메모리이다. 전원이 끊어져도 정보가 없어지지 않는다. 이를 불휘발성 기억장치라 한다. data의 내용은 변하지 않는 규칙들을 사전에 메모리에 저장해놓고 필요시 data의 address를 제공하면 그 address에 있는 data가 출력된다.
read only memory 이기 때문에, clock or wirte-enable 핀또한 필요없고, 별도의 제어신호가 필요하지 않다.
ex ) addr0 -> Data0
2.소스코드 및 설명
13: rom_word 는 8비트(7부터0내림차순)의 로직벡터형 subtype 정의
14: rom_table은 (0부터7까지 배열index) rom_word형
16: constant는 상수선언 의미로 값을 유지한다. 0번의 index부터 차례로 7번의 index까지의 배열값을 차례대로 적어주었다.
22: read_addr란 값이 계속바뀌는 변수형으로 process문안에 사용한다. read_addr의 변수형은 integer형 0부터7까지 정수를 가진다.
24: read_addr은 (정수0부터~7) integer형이고, conv함수를 이용하여 addr 3비트의 std_logic_vector형을 integer형으로 바꾸어 read_addr값에 전달한다.
25:data란 8비트의 출력변수에 read_addr의 값에 따른 index의 rom의 배열값을 전달해주어 출력한다.
3.시뮬레이션 결과 및 설명
1. 입력3비트 addr의 logic_vector형은 000값이고, 이값이 integer형으로 conv함수로 인하여 치환하여 read_addr 변수에게 값을 전달한다. read_addr은 정수형이므로 0값이 되고,
rom(0) 즉, rom에 0의index에 해당하는 값이 data로 전달되어 00000001이 출력된다.
2. 입력 3비트 addr의 값은 010이고 이값은 integer형으로 2이다, conv함수로 인하여 정수 2로 바꾸어서 read_addr 변수에게 값을 전달한다. rom은 0번부터7번까지의 상수배열이고,
rom(2), rom의 2번 index에 해당하는 0000010값을 data에 전달해주어 출력된다.
3.입력 3비트 addr의 값은 100이고 integer형으로 4로 변환하여 정수4를 read_addr 변수에게 값을 전달한다. rom(read_addr) = rom(4)가 되므로 4번index에 해당하는 배열의 값을 data로 전달해주어 최종 출력해준다.
rom(4) = 00010000
4.addr의 입력값은 111, integer형으로 7을 conv함수를 이용하여 read_addr(0부터7까지 범위의 값을 가지는 변수형)으로 전달해준다 read_addr값은 7이되고 rom(7)은 rom의 7번 index에 해당하는 배열의값 10000000이 data로 전달되어 출력된다.
반응형
'VHDL' 카테고리의 다른 글
Sequence Detector(순차검출기) (0) | 2021.06.09 |
---|---|
램메모리 VHDL RAM(Random Access Memory) VHDL (0) | 2021.06.09 |
4비트 존슨 카운터(4bit johnson counter) (0) | 2021.06.09 |
4 BIT RING COUNTER,4비트링카운터 VHDL (1) | 2021.06.09 |
모듈로 10 UP-DOWN-COUNTER (0) | 2021.06.09 |