⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tb_enc_rev1.v

📁 Verilog jpec coder encoder source code
💻 V
📖 第 1 页 / 共 2 页
字号:
`timescale 1ns / 10ps

module tb_enc();
	
	parameter verbose = 1;

	// Input Registers
	reg clk, rst, lc, dstrb;
	reg [11:0] din;
	reg [ 3:0] addr;

	// Output Wires
	wire eob, doe;
	wire [19:0] dout;

	// Variables
	// Luminance
	reg [11:0] il [63:0]; //Input List
	reg [11:0] iqnr [63:0];
	reg [11:0] irle [63:0];
	reg [11:0] ihuff[5:0];
	reg [19:0] ol [3:0]; //Output List
	reg [19:0] orle [5:0];
	// chrominance
	reg [11:0] cl [63:0]; //Input List
	reg [11:0] cqnr [63:0];
	reg [11:0] crle [63:0];
	reg [11:0] chuff [11:0];
	reg [19:0] oc [5:0];
	reg [19:0] ocrle [11:0];
	
	reg j;
	integer cnt;
	integer i;
	integer err;
	
	// Generate Clock
	always #5 clk <= ~clk;

	// Instantiate DUT
	jpeg_encoder jpeg_enc(
		.clk(clk),
		.rst(rst),
		.lc(lc),
		.eob(eob),
		.dstrb(dstrb),
		.din(din),
		.addr(addr),
		.dout(dout),
		.doe(doe)
	);

	// Initialize Values
	initial 
	begin
		// Input Lists (luminance values)
		#0  il[00]	<= 12'd70;
		#0  il[01]	<= 12'd72;
		#0	il[02]	<= 12'd70;
		#0	il[03]	<= 12'd70;
		#0	il[04]	<= 12'd72;
		#0	il[05]	<= 12'd68;
		#0	il[06]	<= 12'd68;
		#0	il[07]	<= 12'd64;
		#0	il[08]	<= 12'd103;
		#0	il[09]	<= 12'd101;
		#0  il[10]	<= 12'd103;
		#0  il[11]	<= 12'd100;
		#0	il[12]	<= 12'd99;
		#0	il[13]	<= 12'd97;
		#0	il[14]	<= 12'd94;
		#0	il[15]	<= 12'd94;
		#0	il[16]	<= 12'd132;
		#0	il[17]	<= 12'd132;
		#0	il[18]	<= 12'd132;
		#0	il[19]	<= 12'd130;
		#0  il[20]	<= 12'd129;
		#0  il[21]	<= 12'd129;
		#0	il[22]	<= 12'd125;
		#0	il[23]	<= 12'd121;
		#0	il[24]	<= 12'd157;
		#0	il[25]	<= 12'd157;
		#0	il[26]	<= 12'd155;
		#0	il[27]	<= 12'd154;
		#0	il[28]	<= 12'd153;
		#0	il[29]	<= 12'd150;
		#0  il[30]	<= 12'd148;
		#0  il[31]	<= 12'd145;
		#0	il[32]	<= 12'd168;
		#0	il[33]	<= 12'd163;
		#0	il[34]	<= 12'd164;
		#0	il[35]	<= 12'd162;
		#0	il[36]	<= 12'd163;
		#0	il[37]	<= 12'd161;
		#0	il[38]	<= 12'd161;
		#0	il[39]	<= 12'd156;
		#0  il[40]	<= 12'd172;
		#0  il[41]	<= 12'd170;
		#0	il[42]	<= 12'd165;
		#0	il[43]	<= 12'd166;
		#0	il[44]	<= 12'd163;
		#0	il[45]	<= 12'd163;
		#0	il[46]	<= 12'd162;
		#0	il[47]	<= 12'd158;
		#0	il[48]	<= 12'd174;
		#0	il[49]	<= 12'd170;
		#0  il[50]	<= 12'd167;
		#0  il[51]	<= 12'd167;
		#0	il[52]	<= 12'd164;
		#0	il[53]	<= 12'd163;
		#0	il[54]	<= 12'd164;
		#0	il[55]	<= 12'd159;
		#0	il[56]	<= 12'd174;
		#0	il[57]	<= 12'd173;
		#0	il[58]	<= 12'd170;
		#0	il[59]	<= 12'd167;
		#0  il[60]	<= 12'd167;
		#0  il[61]	<= 12'd166;
		#0	il[62]	<= 12'd166;
		#0	il[63]	<= 12'd160;
		#0  iqnr[0] <= 12'h0ac;
		#0  iqnr[1] <= 12'h034;
		#0  iqnr[2] <= 12'he12;
		#0  iqnr[3] <= 12'hf16;
		#0  iqnr[4] <= 12'hff8;
		#0  iqnr[5] <= 12'hffa;
		#0  iqnr[6] <= 12'h00c;
		#0  iqnr[7] <= 12'hff6;
		#0  iqnr[8] <= 12'hffd;
		#0  iqnr[9] <= 12'hfb0;
		#0  iqnr[10] <= 12'hff2;
		#0	iqnr[11] <= 12'hffb;
		#0 	iqnr[12] <= 12'h000;
		#0	iqnr[13] <= 12'hffa;
		#0	iqnr[14] <= 12'hffb;
		#0	iqnr[15] <= 12'h004;
		#0 	iqnr[16] <= 12'h000;
		#0  iqnr[17] <= 12'hffe;
		#0  iqnr[18] <= 12'h002;
		#0  iqnr[19] <= 12'hffb;
		#0  iqnr[20] <= 12'hff4;
		#0  iqnr[21] <= 12'hff7;
		#0  iqnr[22] <= 12'h001;
		#0  iqnr[23] <= 12'hffd;
		#0  iqnr[24] <= 12'h001;
		#0  iqnr[25] <= 12'hffe;
		#0  iqnr[26] <= 12'hffa;
		#0  iqnr[27] <= 12'hffc;
		#0  iqnr[28] <= 12'h002;
		#0  iqnr[29] <= 12'h002;
		#0  iqnr[30] <= 12'hffe;
		#0  iqnr[31] <= 12'h003;
		#0  iqnr[32] <= 12'h001;
		#0  iqnr[33] <= 12'hffe;
		#0  iqnr[34] <= 12'hffe;
		#0  iqnr[35] <= 12'hff9;
		#0  iqnr[36] <= 12'hffa;
		#0  iqnr[37] <= 12'hffe;
		#0  iqnr[38] <= 12'hfff;
		#0  iqnr[39] <= 12'hffe;
		#0  iqnr[40] <= 12'h001;
		#0  iqnr[41] <= 12'hffd;
		#0  iqnr[42] <= 12'h001;
		#0  iqnr[43] <= 12'h000;
		#0  iqnr[44] <= 12'hffc;
		#0  iqnr[45] <= 12'hffe;
		#0  iqnr[46] <= 12'hfff;
		#0  iqnr[47] <= 12'h002;
		#0  iqnr[48] <= 12'hffe;
		#0  iqnr[49] <= 12'h002;
		#0  iqnr[50] <= 12'hffc;
		#0  iqnr[51] <= 12'hfff;
		#0  iqnr[52] <= 12'hffd;
		#0  iqnr[53] <= 12'hfff;
		#0  iqnr[54] <= 12'h003;
		#0  iqnr[55] <= 12'hffb;
		#0  iqnr[56] <= 12'hffd;
		#0  iqnr[57] <= 12'hffe;
		#0  iqnr[58] <= 12'h002;
		#0  iqnr[59] <= 12'hffd;
		#0  iqnr[60] <= 12'hffd;
		#0  iqnr[61] <= 12'hffd;
		#0  iqnr[62] <= 12'h000;
		#0  iqnr[63] <= 12'h002;
		#0	irle[0] <= 12'h005;
		#0  irle[1] <= 12'h002;
		#0  irle[2] <= 12'hfeb;
		#0  irle[3] <= 12'hff8;
		#0  irle[4] <= 12'h000;
		#0  irle[5] <= 12'h000;
		#0  irle[6] <= 12'h000;
		#0  irle[7] <= 12'h000;
		#0  irle[8] <= 12'h000;
		#0  irle[9] <= 12'hffd;
		#0	irle[10] <= 12'h000;
		#0  irle[11] <= 12'h000;
		#0  irle[12] <= 12'h000;
		#0  irle[13] <= 12'h000;
		#0  irle[14] <= 12'h000;
		#0  irle[15] <= 12'h000;
		#0  irle[16] <= 12'h000;
		#0  irle[17] <= 12'h000;
		#0  irle[18] <= 12'h000;
		#0  irle[19] <= 12'h000;
		#0	irle[20] <= 12'h000;
		#0  irle[21] <= 12'h000;
		#0  irle[22] <= 12'h000;
		#0  irle[23] <= 12'h000;
		#0  irle[24] <= 12'h000;
		#0  irle[25] <= 12'h000;
		#0  irle[26] <= 12'h000;
		#0  irle[27] <= 12'h000;
		#0  irle[28] <= 12'h000;
		#0  irle[29] <= 12'h000;
		#0	irle[30] <= 12'h000;
		#0  irle[31] <= 12'h000;
		#0  irle[32] <= 12'h000;
		#0  irle[33] <= 12'h000;
		#0  irle[34] <= 12'h000;
		#0  irle[35] <= 12'h000;
		#0  irle[36] <= 12'h000;
		#0  irle[37] <= 12'h000;
		#0  irle[38] <= 12'h000;
		#0  irle[39] <= 12'h000;
		#0	irle[40] <= 12'h000;
		#0  irle[41] <= 12'h000;
		#0  irle[42] <= 12'h000;
		#0  irle[43] <= 12'h000;
		#0  irle[44] <= 12'h000;
		#0  irle[45] <= 12'h000;
		#0  irle[46] <= 12'h000;
		#0  irle[47] <= 12'h000;
		#0  irle[48] <= 12'h000;
		#0  irle[49] <= 12'h000;
		#0	irle[50] <= 12'h000;
		#0  irle[51] <= 12'h000;
		#0  irle[52] <= 12'h000;
		#0  irle[53] <= 12'h000;
		#0  irle[54] <= 12'h000;
		#0  irle[55] <= 12'h000;
		#0  irle[56] <= 12'h000;
		#0  irle[57] <= 12'h000;
		#0  irle[58] <= 12'h000;
		#0  irle[59] <= 12'h000;
		#0	irle[60] <= 12'h000;
		#0  irle[61] <= 12'h000;
		#0  irle[62] <= 12'h000;
		#0  irle[63] <= 12'h000;
		#0  ihuff[0] <= 12'h003;
		#0  ihuff[1] <= 12'h002;
		#0  ihuff[2] <= 12'h005;
		#0  ihuff[3] <= 12'h004;
		#0  ihuff[4] <= 12'h052;
		#0  ihuff[5] <= 12'h000;
		// Output Lists (luminance)
		#0 	ol[0] <= 20'h0008e;
		#0  ol[1] <= 20'h000af;
		#0  ol[2] <= 20'h000fb;
		#0  ol[3] <= 20'h000d0;
		#0  orle[0] <= 20'h00503;
		#0  orle[1] <= 20'h00202;
		#0  orle[2] <= 20'h7ea05;
		#0  orle[3] <= 20'h7f704;
		#0  orle[4] <= 20'h7fc52;
		#0  orle[5] <= 20'h00000;
		#0  cl[0]	<= 12'd151;
		#0	cl[1]	<= 12'd147;
		#0	cl[2]	<= 12'd152;
		#0 	cl[3]	<= 12'd140;
		#0	cl[4]	<= 12'd138;
		#0	cl[5]	<= 12'd125;
		#0	cl[6]	<= 12'd136;
		#0	cl[7]	<= 12'd160;
		#0	cl[8]	<= 12'd157;
		#0	cl[9]	<= 12'd148;
		#0  cl[10]	<= 12'd152;
		#0	cl[11]	<= 12'd137;
		#0	cl[12]	<= 12'd124;
		#0 	cl[13]	<= 12'd105;
		#0	cl[14]	<= 12'd108;
		#0	cl[15]	<= 12'd144;
		#0	cl[16]	<= 12'd152;
		#0	cl[17]	<= 12'd151;
		#0	cl[18]	<= 12'd146;
		#0	cl[19]	<= 12'd128;
		#0  cl[20]	<= 12'd99;
		#0	cl[21]	<= 12'd73;
		#0	cl[22]	<= 12'd75;
		#0 	cl[23]	<= 12'd116;
		#0	cl[24]	<= 12'd154;
		#0	cl[25]	<= 12'd148;
		#0	cl[26]	<= 12'd145;
		#0	cl[27]	<= 12'd111;
		#0	cl[28]	<= 12'd91;
		#0	cl[29]	<= 12'd68;
		#0  cl[30]	<= 12'd62;
		#0	cl[31]	<= 12'd98;
		#0	cl[32]	<= 12'd156;
		#0 	cl[33]	<= 12'd144;
		#0	cl[34]	<= 12'd147;
		#0	cl[35]	<= 12'd93;
		#0	cl[36]	<= 12'd97;
		#0	cl[37]	<= 12'd105;
		#0	cl[38]	<= 12'd61;
		#0	cl[39]	<= 12'd82;
		#0  cl[40]	<= 12'd155;
		#0	cl[41]	<= 12'd139;
		#0	cl[42]	<= 12'd149;
		#0 	cl[43]	<= 12'd76;
		#0	cl[44]	<= 12'd101;
		#0	cl[45]	<= 12'd140;
		#0	cl[46]	<= 12'd59;
		#0	cl[47]	<= 12'd74;
		#0	cl[48]	<= 12'd148;
		#0	cl[49]	<= 12'd135;
		#0  cl[50]	<= 12'd147;
		#0	cl[51]	<= 12'd71;
		#0	cl[52]	<= 12'd114;
		#0 	cl[53]	<= 12'd158;
		#0	cl[54]	<= 12'd79;
		#0	cl[55]	<= 12'd66;
		#0	cl[56]	<= 12'd135;
		#0	cl[57]	<= 12'd120;
		#0	cl[58]	<= 12'd133;
		#0	cl[59]	<= 12'd92;
		#0  cl[60]	<= 12'd133;
		#0	cl[61]	<= 12'd176;
		#0	cl[62]	<= 12'd103;
		#0 	cl[63]	<= 12'd60;
		#0  cqnr[0] <= 12'hf82;
		#0  cqnr[1] <= 12'h139;
		#0  cqnr[2] <= 12'h07b;
		#0  cqnr[3] <= 12'h084;
		#0  cqnr[4] <= 12'hfdd;
		#0  cqnr[5] <= 12'h02c;
		#0  cqnr[6] <= 12'h016;
		#0  cqnr[7] <= 12'h049;
		#0  cqnr[8] <= 12'hf71;
		#0  cqnr[9] <= 12'h020;
		#0  cqnr[10] <= 12'h009;
		#0  cqnr[11] <= 12'hff1;
		#0  cqnr[12] <= 12'hfcd;
		#0  cqnr[13] <= 12'hf4b;
		#0  cqnr[14] <= 12'hfd2;
		#0  cqnr[15] <= 12'hfb5;
		#0  cqnr[16] <= 12'h080;
		#0  cqnr[17] <= 12'h04a;
		#0  cqnr[18] <= 12'h00f;
		#0  cqnr[19] <= 12'hfe7;
		#0  cqnr[20] <= 12'hff1;
		#0  cqnr[21] <= 12'hff9;
		#0  cqnr[22] <= 12'h00b;
		#0  cqnr[23] <= 12'hff2;
		#0  cqnr[24] <= 12'h01b;
		#0  cqnr[25] <= 12'hfde;
		#0  cqnr[26] <= 12'h01e;
		#0  cqnr[27] <= 12'h087;
		#0  cqnr[28] <= 12'h015;
		#0  cqnr[29] <= 12'hfa3;
		#0  cqnr[30] <= 12'h00f;
		#0  cqnr[31] <= 12'hfe4;
		#0  cqnr[32] <= 12'h003;
		#0  cqnr[33] <= 12'h00e;
		#0  cqnr[34] <= 12'hffd;
		#0  cqnr[35] <= 12'hfff;
		#0  cqnr[36] <= 12'h001;
		#0  cqnr[37] <= 12'hff8;
		#0  cqnr[38] <= 12'hff2;
		#0  cqnr[39] <= 12'h005;
		#0  cqnr[40] <= 12'hfea;
		#0  cqnr[41] <= 12'hffb;
		#0  cqnr[42] <= 12'hffb;
		#0  cqnr[43] <= 12'h008;
		#0  cqnr[44] <= 12'h027;
		#0  cqnr[45] <= 12'h00f;
		#0  cqnr[46] <= 12'hffb;
		#0  cqnr[47] <= 12'hfff;
		#0  cqnr[48] <= 12'hffe;
		#0  cqnr[49] <= 12'h001;
		#0  cqnr[50] <= 12'h001;
		#0  cqnr[51] <= 12'hffa;
		#0  cqnr[52] <= 12'hfe8;
		#0  cqnr[53] <= 12'h005;
		#0  cqnr[54] <= 12'h004;
		#0  cqnr[55] <= 12'hffc;
		#0  cqnr[56] <= 12'h001;
		#0  cqnr[57] <= 12'hffa;
		#0  cqnr[58] <= 12'hfff;
		#0  cqnr[59] <= 12'hfff;
		#0  cqnr[60] <= 12'h005;
		#0  cqnr[61] <= 12'hff6;
		#0  cqnr[62] <= 12'hffc;
		#0  cqnr[63] <= 12'h000;
		#0  crle[0] <= 12'hffc;
		#0  crle[1] <= 12'h009;
		#0  crle[2] <= 12'h003;
		#0  crle[3] <= 12'h003;
		#0  crle[4] <= 12'hfff;
		#0  crle[5] <= 12'h001;
		#0  crle[6] <= 12'h000;
		#0  crle[7] <= 12'h001;
		#0  crle[8] <= 12'hffd;
		#0  crle[9] <= 12'h000;
		#0  crle[10] <= 12'h000;
		#0  crle[11] <= 12'h000;
		#0  crle[12] <= 12'h000;
		#0  crle[13] <= 12'hfff;
		#0  crle[14] <= 12'h000;
		#0  crle[15] <= 12'h000;
		#0  crle[16] <= 12'h001;
		#0  crle[17] <= 12'h000;
		#0  crle[18] <= 12'h000;
		#0  crle[19] <= 12'h000;
		#0  crle[20] <= 12'h000;
		#0  crle[21] <= 12'h000;
		#0  crle[22] <= 12'h000;
		#0  crle[23] <= 12'h000;
		#0  crle[24] <= 12'h000;
		#0  crle[25] <= 12'h000;
		#0  crle[26] <= 12'h000;
		#0  crle[27] <= 12'h001;
		#0  crle[28] <= 12'h000;
		#0  crle[29] <= 12'h000;
		#0  crle[30] <= 12'h000;
		#0  crle[31] <= 12'h000;
		#0  crle[32] <= 12'h000;
		#0  crle[33] <= 12'h000;
		#0  crle[34] <= 12'h000;
		#0  crle[35] <= 12'h000;
		#0  crle[36] <= 12'h000;
		#0  crle[37] <= 12'h000;
		#0  crle[38] <= 12'h000;
		#0  crle[39] <= 12'h000;
		#0  crle[40] <= 12'h000;
		#0  crle[41] <= 12'h000;
		#0  crle[42] <= 12'h000;
		#0  crle[43] <= 12'h000;
		#0  crle[44] <= 12'h000;
		#0  crle[45] <= 12'h000;
		#0  crle[46] <= 12'h000;
		#0  crle[47] <= 12'h000;
		#0  crle[48] <= 12'h000;
		#0  crle[49] <= 12'h000;
		#0  crle[50] <= 12'h000;
		#0  crle[51] <= 12'h000;
		#0  crle[52] <= 12'h000;
		#0  crle[53] <= 12'h000;
		#0  crle[54] <= 12'h000;
		#0  crle[55] <= 12'h000;
		#0  crle[56] <= 12'h000;
		#0  crle[57] <= 12'h000;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -