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

📄 router_mod.v

📁 根据外部控制指令和送入的波形参数
💻 V
字号:
//需例化开根IP核;或近似公式,在I、Q的绝对值(最高位异或各位)中选大值然后+小值/2;//由于求模输出流水率为4M,而脉压流水率为25M,因此需要考虑添加一级DPRAM(最好用分布式RAM来做,减少块RAM的资源使用)module router_mod(              CLK_FPGA,              CLK_MOD_in,              RESET,              core_d_valid,              out_index,              QD_in,              ID_in,//              EXP_IN,          //直接从data_path模块输出到reg_ctrl_reg中的core_exp_out寄存器中;//              DPC_OUT_DATA,              MOD_DATA,				  size_we,				  QD_tmp,				  ID_tmp,				  test              );input              CLK_FPGA;input              CLK_MOD_in;input              RESET;input              core_d_valid;input [12:0]       out_index;input [15:0]       QD_in;input [15:0]       ID_in;//output[31:0]       DPC_OUT_DATA;output[15:0]       MOD_DATA;   output[15:0]       ID_tmp;output[15:0]       QD_tmp; output             test;    input             size_we;reg [15:0]         MOD_DATA_TMP ;  reg [12:0]         addrb;   wire               CLK_FPGA;wire [7:0]         test;wire [15:0] QD_tmp;wire [15:0] ID_tmp;assign  QD_tmp[15]= QD_in[15]^QD_in[15];assign  QD_tmp[14]= QD_in[15]^QD_in[14];assign  QD_tmp[13]= QD_in[15]^QD_in[13];assign  QD_tmp[12]= QD_in[15]^QD_in[12];assign  QD_tmp[11]= QD_in[15]^QD_in[11];assign  QD_tmp[10]= QD_in[15]^QD_in[10];assign  QD_tmp[9] = QD_in[15]^QD_in[9];assign  QD_tmp[8] = QD_in[15]^QD_in[8];assign  QD_tmp[7] = QD_in[15]^QD_in[7];assign  QD_tmp[6] = QD_in[15]^QD_in[6];assign  QD_tmp[5] = QD_in[15]^QD_in[5];assign  QD_tmp[4] = QD_in[15]^QD_in[4];assign  QD_tmp[3] = QD_in[15]^QD_in[3];assign  QD_tmp[2] = QD_in[15]^QD_in[2];assign  QD_tmp[1] = QD_in[15]^QD_in[1];assign  QD_tmp[0] = QD_in[15]^QD_in[0];                assign  ID_tmp[15]= ID_in[15]^ID_in[15];assign  ID_tmp[14]= ID_in[15]^ID_in[14];assign  ID_tmp[13]= ID_in[15]^ID_in[13];assign  ID_tmp[12]= ID_in[15]^ID_in[12];assign  ID_tmp[11]= ID_in[15]^ID_in[11];assign  ID_tmp[10]= ID_in[15]^ID_in[10];assign  ID_tmp[9] = ID_in[15]^ID_in[9];assign  ID_tmp[8] = ID_in[15]^ID_in[8];assign  ID_tmp[7] = ID_in[15]^ID_in[7];assign  ID_tmp[6] = ID_in[15]^ID_in[6];assign  ID_tmp[5] = ID_in[15]^ID_in[5];assign  ID_tmp[4] = ID_in[15]^ID_in[4];assign  ID_tmp[3] = ID_in[15]^ID_in[3];assign  ID_tmp[2] = ID_in[15]^ID_in[2];assign  ID_tmp[1] = ID_in[15]^ID_in[1];assign  ID_tmp[0] = ID_in[15]^ID_in[0];                 //assign test[1:0]=out_index[1:0];//assign test[3:2]=addrb[1:0];assign test[3:0]=MOD_DATA_TMP[3:0];assign test[7:4]=MOD_DATA[7:4];/*always@(QD_tmp or ID_tmp)     if(ID_tmp>=QD_tmp)        MOD_DATA_TMP=ID_tmp+QD_tmp/2;     else        MOD_DATA_TMP=QD_tmp+ID_tmp/2;*/always@(posedge CLK_FPGA or negedge RESET)   if(!RESET)      MOD_DATA_TMP <=16'h0;   else      if(ID_tmp>=QD_tmp)         MOD_DATA_TMP <=(ID_tmp+QD_tmp/2)/2+16'h8000;      else         MOD_DATA_TMP <=(QD_tmp+ID_tmp/2)/2+16'h8000;/*moddpram moddpram (	           .addra(out_index),	           .addrb(addrb),	           .clka(CLK_FPGA),	           .clkb(CLK_MOD_in),	           .dina(MOD_DATA_TMP),	           .doutb(MOD_DATA),	           .wea(core_d_valid)	           );*/always@(posedge CLK_MOD_in or negedge RESET) if(!RESET)    addrb<=13'h0; else    if(size_we)      addrb<=13'h0;    else      addrb<=addrb+1'b1;endmodule

⌨️ 快捷键说明

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