verilog, 베릴로그, 베릴로그로 짠 32x32 레지스터파일
- 최초 등록일
- 2011.10.13
- 최종 저작일
- 2010.04
- 7페이지/ 한컴오피스
- 가격 1,000원
소개글
verilog로 짠 32x32 레지스터파일
목차
1. Composition of Modules
2. Verilog Code ( Register files source )
3. Testbench Code
4. Simulation Result & Description
본문내용
1. Composition of Modules
①32X32 레지스터 구성 방법
32X32 레지스터 파일을 구현하기 위해 먼저 32비트의 데이터를 저장할 수 있는 D-Flipflop을 구성 하였다. 그 후 각각의 32비트 레지스터들을 32번 선언하여 32개의 32비트 레지스터를 구성 하였다.
②Write 부분 구성 방법
Write를 하기 위해 일단 입력으로 5비트의 셀렉트 신호를 받아서 5비트 신호를 32개의 신호로 디코딩하기 위해 5-to-32 Decoder를 구성하였다. 그 후 디코딩 된 신호들을 write가 1->0이 될 때 각 레지스터들의 Clk에 들어가게 하여 write신호의 하강 에지에서 입력 데이터가 쓰여 질 수 있게 구성하였다.
③Read 부분 구성 방법
지정된 두 개 5bits의 셀렉트 신호를 받아 32by1MUX를 사용하여 지정된 레지스터의 출력만 나갈 수 있게 설정해 주었고 특별히 read enable 신호를 넣지 않고 출력은 지정된 레지스터에 값이 있을 때 항상 나갈 수 있게 해 주었다.
④Write가 negative edge 할 때 데이터를 입력할 수 있게 한 방법
디코드 된 신호와 AND게이트로 연결된 부분을 negative edge때 레지스터 클럭으로 입력하기 위해 wr_reg_sel이란 모듈을 따로 구성하여 디코드 된 신호를 negedge write 일 때 모듈의 출력으로 나가게 하여 그 출력선을 레지스터 클럭에 입력으로 넣어 주었다. 전체적인 쓰기 제어의 흐름은 다음과 같다.
write sel 5비트 -> 5-to-32 Decoder -> negative edge module -> register Clk
32X32 register file
┣ 32bit register * 32
┣ 32by1 MUX ( read register select line ) * 2
┣ 5-to-1 decoder ( write register select line ) * 1
┗ wr_reg_sel ( for negedge write )
참고 자료
없음