디지털회로 실험 보고서 Datapath 코드(simple computer 일부), Registerfile, FunctionUnit등 이용
- 최초 등록일
- 2014.11.09
- 최종 저작일
- 2014.09
- 11페이지/ 한컴오피스
- 가격 1,000원
컴파일 실행환경
1. 실험제목
2. 실험목표
3. 실험결과
4. 토의
본문내용
2013.11.13. 실험 결과 및 코드.
module RegisterFile(CLK, Ddata, Write,
Daddr, Aaddr, Baddr, Adata, Bdata, Reg0,Reg1,Reg2,Reg3);
input CLK;
input [3:0] Ddata;
input [1:0] Daddr, Aaddr, Baddr;
input Write;
output [3:0] Adata;
output [3:0] Bdata;
output [3:0] Reg0, Reg1, Reg2, Reg3;
reg [3:0]Reg0,Reg1, Reg2, Reg3;
wire [3:0]Adata,Bdata;
wire D3,D2,D1,D0;
DECODER2to4 d1(Daddr[1],Daddr[0],D3,D2,D1,D0);
always@(posedge CLK)
begin
if(Write)
begin
if(D0)
Reg0<=Ddata;
if(D1)
Reg1<=Ddata;
if(D2)
Reg2<=Ddata;
가장 기본적으로, 컴퓨터의 레지스터 역할을 하는 RegisterFile의 소스이다.
input : CLK, Ddata, Daddr, Aaddr, Baddr, Write
CLK : 클락이다. 실제 레지스터는 D레치를 이용하므로, CLK에 동기화 되어있다.
Ddata : 넣어주는 데이터다. 이 값은, 먹스에 의해서, 외부에서 넣어주는 Data일 수도 있고, Datapath의 계산 결과로 나온 값일 수도 있다.
Daddr : 값을 넣어줄 레지스터를 선택하는 어드레스 값이다. 00 01 10 11 순서대로 R0 R1 R2 R3를 선택함을 의미한다.
Aaddr,Baddr : 레지스터의 값을 선택하는 주소이다. 00 01 10 11 순서대로 R0 R1 R2 R3값이 assign된다.
output : Adata, Bdata, Reg0~3
Adata, Bdata : Aaddr,Baddr에 의해 선택된 레지스터에 저장된 값이다.
Reg0~3 : 실제 Datapath에서 쓰이진 않지만
참고 자료
없음