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

📄 wb_dma_ch_sel.v

📁 DMA的实现,通过此文件以及后面的文件可以实现DMA,可以在CPU之外工作.
💻 V
📖 第 1 页 / 共 4 页
字号:
		.pri25(		pri25		),		.pri26(		pri26		),		.pri27(		pri27		),		.pri28(		pri28		),		.pri29(		pri29		),		.pri30(		pri30		),		.pri_out(	pri_out		)		);// Arbiter request lines// Generate request depending on priority and valid bitsassign req_p0[0] = valid[0] & (pri0==3'h0);assign req_p0[1] = valid[1] & (pri1==3'h0);assign req_p0[2] = valid[2] & (pri2==3'h0);assign req_p0[3] = valid[3] & (pri3==3'h0);assign req_p0[4] = valid[4] & (pri4==3'h0);assign req_p0[5] = valid[5] & (pri5==3'h0);assign req_p0[6] = valid[6] & (pri6==3'h0);assign req_p0[7] = valid[7] & (pri7==3'h0);assign req_p0[8] = valid[8] & (pri8==3'h0);assign req_p0[9] = valid[9] & (pri9==3'h0);assign req_p0[10] = valid[10] & (pri10==3'h0);assign req_p0[11] = valid[11] & (pri11==3'h0);assign req_p0[12] = valid[12] & (pri12==3'h0);assign req_p0[13] = valid[13] & (pri13==3'h0);assign req_p0[14] = valid[14] & (pri14==3'h0);assign req_p0[15] = valid[15] & (pri15==3'h0);assign req_p0[16] = valid[16] & (pri16==3'h0);assign req_p0[17] = valid[17] & (pri17==3'h0);assign req_p0[18] = valid[18] & (pri18==3'h0);assign req_p0[19] = valid[19] & (pri19==3'h0);assign req_p0[20] = valid[20] & (pri20==3'h0);assign req_p0[21] = valid[21] & (pri21==3'h0);assign req_p0[22] = valid[22] & (pri22==3'h0);assign req_p0[23] = valid[23] & (pri23==3'h0);assign req_p0[24] = valid[24] & (pri24==3'h0);assign req_p0[25] = valid[25] & (pri25==3'h0);assign req_p0[26] = valid[26] & (pri26==3'h0);assign req_p0[27] = valid[27] & (pri27==3'h0);assign req_p0[28] = valid[28] & (pri28==3'h0);assign req_p0[29] = valid[29] & (pri29==3'h0);assign req_p0[30] = valid[30] & (pri30==3'h0);assign req_p1[0] = valid[0] & (pri0==3'h1);assign req_p1[1] = valid[1] & (pri1==3'h1);assign req_p1[2] = valid[2] & (pri2==3'h1);assign req_p1[3] = valid[3] & (pri3==3'h1);assign req_p1[4] = valid[4] & (pri4==3'h1);assign req_p1[5] = valid[5] & (pri5==3'h1);assign req_p1[6] = valid[6] & (pri6==3'h1);assign req_p1[7] = valid[7] & (pri7==3'h1);assign req_p1[8] = valid[8] & (pri8==3'h1);assign req_p1[9] = valid[9] & (pri9==3'h1);assign req_p1[10] = valid[10] & (pri10==3'h1);assign req_p1[11] = valid[11] & (pri11==3'h1);assign req_p1[12] = valid[12] & (pri12==3'h1);assign req_p1[13] = valid[13] & (pri13==3'h1);assign req_p1[14] = valid[14] & (pri14==3'h1);assign req_p1[15] = valid[15] & (pri15==3'h1);assign req_p1[16] = valid[16] & (pri16==3'h1);assign req_p1[17] = valid[17] & (pri17==3'h1);assign req_p1[18] = valid[18] & (pri18==3'h1);assign req_p1[19] = valid[19] & (pri19==3'h1);assign req_p1[20] = valid[20] & (pri20==3'h1);assign req_p1[21] = valid[21] & (pri21==3'h1);assign req_p1[22] = valid[22] & (pri22==3'h1);assign req_p1[23] = valid[23] & (pri23==3'h1);assign req_p1[24] = valid[24] & (pri24==3'h1);assign req_p1[25] = valid[25] & (pri25==3'h1);assign req_p1[26] = valid[26] & (pri26==3'h1);assign req_p1[27] = valid[27] & (pri27==3'h1);assign req_p1[28] = valid[28] & (pri28==3'h1);assign req_p1[29] = valid[29] & (pri29==3'h1);assign req_p1[30] = valid[30] & (pri30==3'h1);assign req_p2[0] = valid[0] & (pri0==3'h2);assign req_p2[1] = valid[1] & (pri1==3'h2);assign req_p2[2] = valid[2] & (pri2==3'h2);assign req_p2[3] = valid[3] & (pri3==3'h2);assign req_p2[4] = valid[4] & (pri4==3'h2);assign req_p2[5] = valid[5] & (pri5==3'h2);assign req_p2[6] = valid[6] & (pri6==3'h2);assign req_p2[7] = valid[7] & (pri7==3'h2);assign req_p2[8] = valid[8] & (pri8==3'h2);assign req_p2[9] = valid[9] & (pri9==3'h2);assign req_p2[10] = valid[10] & (pri10==3'h2);assign req_p2[11] = valid[11] & (pri11==3'h2);assign req_p2[12] = valid[12] & (pri12==3'h2);assign req_p2[13] = valid[13] & (pri13==3'h2);assign req_p2[14] = valid[14] & (pri14==3'h2);assign req_p2[15] = valid[15] & (pri15==3'h2);assign req_p2[16] = valid[16] & (pri16==3'h2);assign req_p2[17] = valid[17] & (pri17==3'h2);assign req_p2[18] = valid[18] & (pri18==3'h2);assign req_p2[19] = valid[19] & (pri19==3'h2);assign req_p2[20] = valid[20] & (pri20==3'h2);assign req_p2[21] = valid[21] & (pri21==3'h2);assign req_p2[22] = valid[22] & (pri22==3'h2);assign req_p2[23] = valid[23] & (pri23==3'h2);assign req_p2[24] = valid[24] & (pri24==3'h2);assign req_p2[25] = valid[25] & (pri25==3'h2);assign req_p2[26] = valid[26] & (pri26==3'h2);assign req_p2[27] = valid[27] & (pri27==3'h2);assign req_p2[28] = valid[28] & (pri28==3'h2);assign req_p2[29] = valid[29] & (pri29==3'h2);assign req_p2[30] = valid[30] & (pri30==3'h2);assign req_p3[0] = valid[0] & (pri0==3'h3);assign req_p3[1] = valid[1] & (pri1==3'h3);assign req_p3[2] = valid[2] & (pri2==3'h3);assign req_p3[3] = valid[3] & (pri3==3'h3);assign req_p3[4] = valid[4] & (pri4==3'h3);assign req_p3[5] = valid[5] & (pri5==3'h3);assign req_p3[6] = valid[6] & (pri6==3'h3);assign req_p3[7] = valid[7] & (pri7==3'h3);assign req_p3[8] = valid[8] & (pri8==3'h3);assign req_p3[9] = valid[9] & (pri9==3'h3);assign req_p3[10] = valid[10] & (pri10==3'h3);assign req_p3[11] = valid[11] & (pri11==3'h3);assign req_p3[12] = valid[12] & (pri12==3'h3);assign req_p3[13] = valid[13] & (pri13==3'h3);assign req_p3[14] = valid[14] & (pri14==3'h3);assign req_p3[15] = valid[15] & (pri15==3'h3);assign req_p3[16] = valid[16] & (pri16==3'h3);assign req_p3[17] = valid[17] & (pri17==3'h3);assign req_p3[18] = valid[18] & (pri18==3'h3);assign req_p3[19] = valid[19] & (pri19==3'h3);assign req_p3[20] = valid[20] & (pri20==3'h3);assign req_p3[21] = valid[21] & (pri21==3'h3);assign req_p3[22] = valid[22] & (pri22==3'h3);assign req_p3[23] = valid[23] & (pri23==3'h3);assign req_p3[24] = valid[24] & (pri24==3'h3);assign req_p3[25] = valid[25] & (pri25==3'h3);assign req_p3[26] = valid[26] & (pri26==3'h3);assign req_p3[27] = valid[27] & (pri27==3'h3);assign req_p3[28] = valid[28] & (pri28==3'h3);assign req_p3[29] = valid[29] & (pri29==3'h3);assign req_p3[30] = valid[30] & (pri30==3'h3);assign req_p4[0] = valid[0] & (pri0==3'h4);assign req_p4[1] = valid[1] & (pri1==3'h4);assign req_p4[2] = valid[2] & (pri2==3'h4);assign req_p4[3] = valid[3] & (pri3==3'h4);assign req_p4[4] = valid[4] & (pri4==3'h4);assign req_p4[5] = valid[5] & (pri5==3'h4);assign req_p4[6] = valid[6] & (pri6==3'h4);assign req_p4[7] = valid[7] & (pri7==3'h4);assign req_p4[8] = valid[8] & (pri8==3'h4);assign req_p4[9] = valid[9] & (pri9==3'h4);assign req_p4[10] = valid[10] & (pri10==3'h4);assign req_p4[11] = valid[11] & (pri11==3'h4);assign req_p4[12] = valid[12] & (pri12==3'h4);assign req_p4[13] = valid[13] & (pri13==3'h4);assign req_p4[14] = valid[14] & (pri14==3'h4);assign req_p4[15] = valid[15] & (pri15==3'h4);assign req_p4[16] = valid[16] & (pri16==3'h4);assign req_p4[17] = valid[17] & (pri17==3'h4);assign req_p4[18] = valid[18] & (pri18==3'h4);assign req_p4[19] = valid[19] & (pri19==3'h4);assign req_p4[20] = valid[20] & (pri20==3'h4);assign req_p4[21] = valid[21] & (pri21==3'h4);assign req_p4[22] = valid[22] & (pri22==3'h4);assign req_p4[23] = valid[23] & (pri23==3'h4);assign req_p4[24] = valid[24] & (pri24==3'h4);assign req_p4[25] = valid[25] & (pri25==3'h4);assign req_p4[26] = valid[26] & (pri26==3'h4);assign req_p4[27] = valid[27] & (pri27==3'h4);assign req_p4[28] = valid[28] & (pri28==3'h4);assign req_p4[29] = valid[29] & (pri29==3'h4);assign req_p4[30] = valid[30] & (pri30==3'h4);assign req_p5[0] = valid[0] & (pri0==3'h5);assign req_p5[1] = valid[1] & (pri1==3'h5);assign req_p5[2] = valid[2] & (pri2==3'h5);assign req_p5[3] = valid[3] & (pri3==3'h5);assign req_p5[4] = valid[4] & (pri4==3'h5);assign req_p5[5] = valid[5] & (pri5==3'h5);assign req_p5[6] = valid[6] & (pri6==3'h5);assign req_p5[7] = valid[7] & (pri7==3'h5);assign req_p5[8] = valid[8] & (pri8==3'h5);assign req_p5[9] = valid[9] & (pri9==3'h5);assign req_p5[10] = valid[10] & (pri10==3'h5);assign req_p5[11] = valid[11] & (pri11==3'h5);assign req_p5[12] = valid[12] & (pri12==3'h5);assign req_p5[13] = valid[13] & (pri13==3'h5);assign req_p5[14] = valid[14] & (pri14==3'h5);assign req_p5[15] = valid[15] & (pri15==3'h5);assign req_p5[16] = valid[16] & (pri16==3'h5);assign req_p5[17] = valid[17] & (pri17==3'h5);assign req_p5[18] = valid[18] & (pri18==3'h5);assign req_p5[19] = valid[19] & (pri19==3'h5);assign req_p5[20] = valid[20] & (pri20==3'h5);assign req_p5[21] = valid[21] & (pri21==3'h5);assign req_p5[22] = valid[22] & (pri22==3'h5);assign req_p5[23] = valid[23] & (pri23==3'h5);assign req_p5[24] = valid[24] & (pri24==3'h5);assign req_p5[25] = valid[25] & (pri25==3'h5);assign req_p5[26] = valid[26] & (pri26==3'h5);assign req_p5[27] = valid[27] & (pri27==3'h5);assign req_p5[28] = valid[28] & (pri28==3'h5);assign req_p5[29] = valid[29] & (pri29==3'h5);assign req_p5[30] = valid[30] & (pri30==3'h5);assign req_p6[0] = valid[0] & (pri0==3'h6);assign req_p6[1] = valid[1] & (pri1==3'h6);assign req_p6[2] = valid[2] & (pri2==3'h6);assign req_p6[3] = valid[3] & (pri3==3'h6);assign req_p6[4] = valid[4] & (pri4==3'h6);assign req_p6[5] = valid[5] & (pri5==3'h6);assign req_p6[6] = valid[6] & (pri6==3'h6);assign req_p6[7] = valid[7] & (pri7==3'h6);assign req_p6[8] = valid[8] & (pri8==3'h6);assign req_p6[9] = valid[9] & (pri9==3'h6);assign req_p6[10] = valid[10] & (pri10==3'h6);assign req_p6[11] = valid[11] & (pri11==3'h6);assign req_p6[12] = valid[12] & (pri12==3'h6);assign req_p6[13] = valid[13] & (pri13==3'h6);assign req_p6[14] = valid[14] & (pri14==3'h6);assign req_p6[15] = valid[15] & (pri15==3'h6);assign req_p6[16] = valid[16] & (pri16==3'h6);assign req_p6[17] = valid[17] & (pri17==3'h6);assign req_p6[18] = valid[18] & (pri18==3'h6);assign req_p6[19] = valid[19] & (pri19==3'h6);assign req_p6[20] = valid[20] & (pri20==3'h6);assign req_p6[21] = valid[21] & (pri21==3'h6);assign req_p6[22] = valid[22] & (pri22==3'h6);assign req_p6[23] = valid[23] & (pri23==3'h6);assign req_p6[24] = valid[24] & (pri24==3'h6);assign req_p6[25] = valid[25] & (pri25==3'h6);assign req_p6[26] = valid[26] & (pri26==3'h6);assign req_p6[27] = valid[27] & (pri27==3'h6);assign req_p6[28] = valid[28] & (pri28==3'h6);assign req_p6[29] = valid[29] & (pri29==3'h6);assign req_p6[30] = valid[30] & (pri30==3'h6);assign req_p7[0] = valid[0] & (pri0==3'h7);assign req_p7[1] = valid[1] & (pri1==3'h7);assign req_p7[2] = valid[2] & (pri2==3'h7);assign req_p7[3] = valid[3] & (pri3==3'h7);assign req_p7[4] = valid[4] & (pri4==3'h7);assign req_p7[5] = valid[5] & (pri5==3'h7);assign req_p7[6] = valid[6] & (pri6==3'h7);assign req_p7[7] = valid[7] & (pri7==3'h7);assign req_p7[8] = valid[8] & (pri8==3'h7);assign req_p7[9] = valid[9] & (pri9==3'h7);assign req_p7[10] = valid[10] & (pri10==3'h7);assign req_p7[11] = valid[11] & (pri11==3'h7);assign req_p7[12] = valid[12] & (pri12==3'h7);assign req_p7[13] = valid[13] & (pri13==3'h7);assign req_p7[14] = valid[14] & (pri14==3'h7);assign req_p7[15] = valid[15] & (pri15==3'h7);assign req_p7[16] = valid[16] & (pri16==3'h7);assign req_p7[17] = valid[17] & (pri17==3'h7);assign req_p7[18] = valid[18] & (pri18==3'h7);assign req_p7[19] = valid[19] & (pri19==3'h7);assign req_p7[20] = valid[20] & (pri20==3'h7);assign req_p7[21] = valid[21] & (pri21==3'h7);assign req_p7[22] = valid[22] & (pri22==3'h7);assign req_p7[23] = valid[23] & (pri23==3'h7);assign req_p7[24] = valid[24] & (pri24==3'h7);assign req_p7[25] = valid[25] & (pri25==3'h7);assign req_p7[26] = valid[26] & (pri26==3'h7);assign req_p7[27] = valid[27] & (pri27==3'h7);assign req_p7[28] = valid[28] & (pri28==3'h7);assign req_p7[29] = valid[29] & (pri29==3'h7);assign req_p7[30] = valid[30] & (pri30==3'h7);// RR Arbiter for priority 0wb_dma_ch_arb u1(	.clk(		clk		),	.rst(		rst		),	.req(		req_p0		),	.gnt(		gnt_p0_d	),	.advance(	next_ch		)	);// RR Arbiter for priority 1wb_dma_ch_arb u2(	.clk(		clk		),	.rst(		rst		),	.req(		req_p1		),	.gnt(		gnt_p1_d	),	.advance(	next_ch		)	);// RR Arbiter for priority 2wb_dma_ch_arb u3(	.clk(		clk		),	.rst(		rst		),	.req(		req_p2		),	.gnt(		gnt_p2_d	),	.advance(	next_ch		)	);// RR Arbiter for priority 3wb_dma_ch_arb u4(	.clk(		clk		),	.rst(		rst		),	.req(		req_p3		),	.gnt(		gnt_p3_d	),	.advance(	next_ch		)	);// RR Arbiter for priority 4wb_dma_ch_arb u5(	.clk(		clk		),	.rst(		rst		),	.req(		req_p4		),	.gnt(		gnt_p4_d	),	.advance(	next_ch		)	);// RR Arbiter for priority 5wb_dma_ch_arb u6(	.clk(		clk		),	.rst(		rst		),	.req(		req_p5		),	.gnt(		gnt_p5_d	),	.advance(	next_ch		)	);// RR Arbiter for priority 6wb_dma_ch_arb u7(	.clk(		clk		),	.rst(		rst		),	.req(		req_p6		),	.gnt(		gnt_p6_d	),	.advance(	next_ch		)	);// RR Arbiter for priority 7wb_dma_ch_arb u8(	.clk(		clk		),	.rst(		rst		),	.req(		req_p7		),	.gnt(		gnt_p7_d	),	.advance(	next_ch		)	);// Select grant based on number of prioritiesassign gnt_p0 = gnt_p0_d;assign gnt_p1 = gnt_p1_d;assign gnt_p2 = (pri_sel==2'd0) ? 5'h0 : gnt_p2_d;assign gnt_p3 = (pri_sel==2'd0) ? 5'h0 : gnt_p3_d;assign gnt_p4 = (pri_sel==2'd2) ? gnt_p4_d : 5'h0;assign gnt_p5 = (pri_sel==2'd2) ? gnt_p5_d : 5'h0;assign gnt_p6 = (pri_sel==2'd2) ? gnt_p6_d : 5'h0;assign gnt_p7 = (pri_sel==2'd2) ? gnt_p7_d : 5'h0;endmodule

⌨️ 快捷键说明

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