논리회로설계 - 영상 스크램블러
본 자료는 9페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
해당 자료는 9페이지 까지만 미리보기를 제공합니다.
9페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

논리회로설계 - 영상 스크램블러에 대한 보고서 자료입니다.

본문내용

_read <= ~DUT_sel_read;
end
end
sram_mosaic Sram_write(
.addr(addr_write),
.clk(clk),
.din(D_out),
.dout(),
.we(we_write)
);
sram_mosaic Sram_read(
.addr(addr_read),
.clk(clk),
.din(),
.dout(D_in),
.we(we_read)
);
endmodule
Test Bench
module TB_SramReadTest();
parameter
addr_width = 18, //262144bit
word_depth = 262144, //26144bit
word_width = 8; //32bit
reg reset;
reg clk;
reg start;
reg Writing_start;
reg [32:0] cnt;
integer mon;
wire [word_width-1:0] a,
b,
c,
d,
e,
f,g,h,i,j;
wire [addr_width-1:0] addr;
wire [word_width-1:0] D_in;
assign a = View.DUTmem[10];
assign b = View.DUTmem[11];
assign c = View.DUTmem[12];
assign d = View.DUTmem[13];
assign e = View.DUTmem[14];
assign f = View.DUTmem2[10];
assign g = View.DUTmem2[11];
assign h = View.DUTmem2[12];
assign i = View.DUTmem2[13];
assign j = View.DUTmem2[14];
//last mem 135535
initial $readmemh ("lena.txt", View.Sram_read.mem);
initial begin
reset = 1'b1;
clk = 1'b0;
cnt = 0;
Writing_start = 0;
mon = $fopen("output.txt","w");
#40 reset = 1'b0;
#40 reset = 1'b1;
#40 start = 1'b1;
#40 start = 1'b0;
end
initial begin
#2700000 Writing_start = 1; start = 1; #40 start = 0;
end
always #20 clk = ~clk;
always @(posedge clk) begin
if(Writing_start) begin
$fwrite(mon,"%h\n",View.Sram_write.mem[70000 +cnt]);
#10 cnt <= cnt +1;
if(cnt == 65535) begin
Writing_start <= 0;
cnt <= 0;
#50 $fclose(mon);
end
end
end
initial #8000000 $finish;
SecretView View(
.Start(start),
.clk(clk),
.reset(reset),
.addr_read(addr),
.addr_write(),
.D_in(D_in),
.D_out(),
.we()
);
endmodule
변환된 데이터 확인 (txt파일을raw파일로 변경하는 c프로그래밍)
#include
#define XMax 256
#define YMax 256
FILE *src;
FILE *dst;
int main(void)
{
unsigned char buf[XMax][YMax];
char srcFileName[20];
char dstFileName[20];
char dummy;
int i,j;
printf("src filename? ");
scanf("%s", &srcFileName);
printf("dst filename? ");
scanf("%s", &dstFileName);
src = fopen(srcFileName, "rt");
dst = fopen(dstFileName, "wb");
if ((src == NULL) || (dst == NULL)){
puts("File Open Error! ");
return -1;}
for (i=0; i for(j=0; j fscanf(src, "%x", &buf[i][j]);
fscanf(src, "\n", &dummy);}}
for (i=0; i for(j=0; j fwrite(&buf[i][j], sizeof(unsigned char), 1, dst);}}
fclose(src);fclose(dst);
return 0;
}
변환된 데이터 확인
Secret View DUT를 이용하여 만들어준 output파일을 raw파일로 변환시켜 메틀랩 상에서 확인해본결과 뒤죽박죽 섞인 그림을 확인할수 있다. 또한 한픽셀의 오류도 없이 변환된 것을 확인해보기위해 output파일을 최초의 입력으로 하고 DUT에 구현해본결과
다음과같이 원본과 똑같은 이미지가 된다는 것을 확인하였다.
상기과정대로 프로젝트를 진행하여 처음 원했던 Secert View를 구현에 성공하였다.
결론
위의 실험을통해서 타임영역에서 영상을 처리하는 가장 기본적인 방법을 습득했다. 부수적으로 Sram에대해 이해하였고 프로젝트를 해결해나가면서 한단계한단계 순차적으로 문제를 해결하는 방법을 배웠다.
참고문헌
[1] Using the New Verilog-2001 Standard PartTwo : Verifying Designs
(by Stuart Sutherland, Suther land H이, inc. portland, Oregon)
[2] Virtualization of Heterogeneous Machines, Hardware Description in a Synthesizable Object-Oriented Language
(by joshua Auerbach, David F. Bacon, Perry Cheng, Rodric Rabbah, Sunil Shukla)
[3] Google website searching
(fopen,fwrite,reamemh 함수등)
  • 가격3,300
  • 페이지수28페이지
  • 등록일2013.05.16
  • 저작시기2011.11
  • 파일형식한글(hwp)
  • 자료번호#846213
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니