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

📄 idct.v.bak

📁 8x8 iDCT verilog code 一次輸入八個點
💻 BAK
字号:
module IDCT(	iclk,	d0,d1,d2,d3,d4,d5,d6,d7,	inpull,	m0,m1,m2,m3,m4,m5,m6,m7,	c1,c0,work1,work2,outpull,	F0_S,F1_S,F2_S,F3_S,F4_S,F5_S,F6_S,F7_S	);input [16:0] d0,d1,d2,d3,d4,d5,d6,d7;input inpull,iclk;output [20:0] m0,m1,m2,m3,m4,m5,m6,m7;output [2:0]c1,c0;output work1,work2,outpull;output [18:0]F0_S,F1_S,F2_S,F3_S,F4_S,F5_S,F6_S,F7_S;reg [18:0]F[7:0][7:0];reg [2:0]c0,c1;reg work1,work2;reg [18:0] F0_r,F1_r,F2_r,F3_r,F4_r,F5_r,F6_r,F7_r;reg outpull;//wire [16:0] m0_r,m1_r,m2_r,m3_r,m4_r,m5_r,m6_r,m7_r;wire [20:0]m0,m1,m2,m3,m4,m5,m6,m7;wire [18:0] F0_w,F1_w,F2_w,F3_w,F4_w,F5_w,F6_w,F7_w;wire [18:0]F0_S,F1_S,F2_S,F3_S,F4_S,F5_S,F6_S,F7_S;wire [18:0]F0,F1,F2,F3,F4,F5,F6,F7;matix_mul_8x8_n17 matix_mul_8x8_n17(
	.d0(d0),.d1(d1),.d2(d2),.d3(d3),.d4(d4),.d5(d5),.d6(d6),.d7(d7),
	.y0(F0),.y1(F1),.y2(F2),.y3(F3),.y4(F4),.y5(F5),.y6(F6),.y7(F7)
	);matix_mul_8x8_n19 matix_mul_8x8_n19(
	.d0(F0_r),.d1(F1_r),.d2(F2_r),.d3(F3_r),.d4(F4_r),.d5(F5_r),.d6(F6_r),.d7(F7_r),
	.y0(m0),.y1(m1),.y2(m2),.y3(m3),.y4(m4),.y5(m5),.y6(m6),.y7(m7)
	);assign F0_S = (work1 == 1'b1)?F0:0;assign F1_S = (work1 == 1'b1)?F1:0;assign F2_S = (work1 == 1'b1)?F2:0;assign F3_S = (work1 == 1'b1)?F3:0;assign F4_S = (work1 == 1'b1)?F4:0;assign F5_S = (work1 == 1'b1)?F5:0;assign F6_S = (work1 == 1'b1)?F6:0;assign F7_S = (work1 == 1'b1)?F7:0;//assign m0 = m0_r[8:1];//assign m1 = m1_r[8:1];//assign m2 = m2_r[8:1];//assign m3 = m3_r[8:1];//assign m4 = m4_r[8:1];//assign m5 = m5_r[8:1];//assign m6 = m6_r[8:1];//assign m7 = m7_r[8:1];always@ (posedge iclk)begin	if (inpull == 1'b1)	begin		c0 = 3'b000;		work1 = 1'b1;		outpull = 1'b0;		work2 = 1'b0;	end		if (work2 == 1'b1)	begin	case (c1)		3'b000:		begin			F0_r = F[0][0];			F1_r = F[1][0];			F2_r = F[2][0];			F3_r = F[3][0];			F4_r = F[4][0];			F5_r = F[5][0];			F6_r = F[6][0];			F7_r = F[7][0];		end		3'b001:		begin			F0_r = F[0][1];			F1_r = F[1][1];			F2_r = F[2][1];			F3_r = F[3][1];			F4_r = F[4][1];			F5_r = F[5][1];			F6_r = F[6][1];			F7_r = F[7][1];		end		3'b010:		begin			F0_r = F[0][2];			F1_r = F[1][2];			F2_r = F[2][2];			F3_r = F[3][2];			F4_r = F[4][2];			F5_r = F[5][2];			F6_r = F[6][2];			F7_r = F[7][2];		end		3'b011:		begin			F0_r = F[0][3];			F1_r = F[1][3];			F2_r = F[2][3];			F3_r = F[3][3];			F4_r = F[4][3];			F5_r = F[5][3];			F6_r = F[6][3];			F7_r = F[7][3];		end		3'b100:		begin			F0_r = F[0][4];			F1_r = F[1][4];			F2_r = F[2][4];			F3_r = F[3][4];			F4_r = F[4][4];			F5_r = F[5][4];			F6_r = F[6][4];			F7_r = F[7][4];		end		3'b101:		begin			F0_r = F[0][5];			F1_r = F[1][5];			F2_r = F[2][5];			F3_r = F[3][5];			F4_r = F[4][5];			F5_r = F[5][5];			F6_r = F[6][5];			F7_r = F[7][5];		end		3'b110:		begin			F0_r = F[0][6];			F1_r = F[1][6];			F2_r = F[2][6];			F3_r = F[3][6];			F4_r = F[4][6];			F5_r = F[5][6];			F6_r = F[6][6];			F7_r = F[7][6];		end		3'b111:		begin			F0_r = F[0][7];			F1_r = F[1][7];			F2_r = F[2][7];			F3_r = F[3][7];			F4_r = F[4][7];			F5_r = F[5][7];			F6_r = F[6][7];			F7_r = F[7][7];		end	endcase	work2 = (c1 == 3'b111)?1'b0:1'b1;	outpull = (work2 == 1'b0)?1'b1:1'b0;	c1 = c1 + 1'b1;		end			if (work1 == 1'b1)	begin 	case (c0)		3'b000:		begin			F[0][0] = F0;			F[0][1] = F1;			F[0][2] = F2;			F[0][3] = F3;			F[0][4] = F4;			F[0][5] = F5;			F[0][6] = F6;			F[0][7] = F7;		end			3'b001:		begin			F[1][0] = F0;			F[1][1] = F1;			F[1][2] = F2;			F[1][3] = F3;			F[1][4] = F4;			F[1][5] = F5;			F[1][6] = F6;			F[1][7] = F7;		end			3'b010:		begin			F[2][0] = F0;			F[2][1] = F1;			F[2][2] = F2;			F[2][3] = F3;			F[2][4] = F4;			F[2][5] = F5;			F[2][6] = F6;			F[2][7] = F7;		end			3'b011:		begin			F[3][0] = F0;			F[3][1] = F1;			F[3][2] = F2;			F[3][3] = F3;			F[3][4] = F4;			F[3][5] = F5;			F[3][6] = F6;			F[3][7] = F7;		end			3'b100:		begin			F[4][0] = F0;			F[4][1] = F1;			F[4][2] = F2;			F[4][3] = F3;			F[4][4] = F4;			F[4][5] = F5;			F[4][6] = F6;			F[4][7] = F7;		end			3'b101:		begin			F[5][0] = F0;			F[5][1] = F1;			F[5][2] = F2;			F[5][3] = F3;			F[5][4] = F4;			F[5][5] = F5;			F[5][6] = F6;			F[5][7] = F7;		end			3'b110:		begin			F[6][0] = F0;			F[6][1] = F1;			F[6][2] = F2;			F[6][3] = F3;			F[6][4] = F4;			F[6][5] = F5;			F[6][6] = F6;			F[6][7] = F7;		end			3'b111:		begin			F[7][0] = F0;			F[7][1] = F1;			F[7][2] = F2;			F[7][3] = F3;			F[7][4] = F4;			F[7][5] = F5;			F[7][6] = F6;			F[7][7] = F7;		end		endcase	work1 = (c0 == 3'b111)?1'b0:1'b1;	work2 = (work1 == 1'b0)?1'b1:1'b0;	c1 = 3'b000;	c0 = c0 + 1'b1;	endendendmodule

⌨️ 快捷键说明

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