📄 arbiter.v
字号:
module arbiter( rst, clk_dsp, db_dsp, wr_dsp, rd_dsp, send_raw, ram_rdb, ram_rab, s_raw_req, s_raw_ack, ram_wdb, ram_wab, ram_wen, r_req, r_ack ); input rst;input clk_dsp;inout [15:0] db_dsp;input wr_dsp;input rd_dsp;input [7:0] ram_rdb;output [8:0] ram_rab;output r_req;input r_ack; input send_raw;output [1:0] ram_wdb;output [10:0] ram_wab;output ram_wen;output s_raw_req;input s_raw_ack;//***********************data from the dsp***************************////*********************receive the mask picture**********************// reg [9:0] ram_wab_reg;reg ram_wab_hbit;always @ (posedge clk_dsp or negedge rst)if(!rst) ram_wab_reg <= 0;else if(!wr_dsp) begin if(ram_wab_reg == 'd719) ram_wab_reg <= 0; else ram_wab_reg <= ram_wab_reg + 1; end always @ (posedge clk_dsp or negedge rst)if(!rst) ram_wab_hbit <= 0;else if(ram_wab_reg == 'd719) ram_wab_hbit <= ~ram_wab_hbit;wire [10:0] ram_wab = {ram_wab_hbit,ram_wab_reg}; reg [1:0] ram_wdb;always @ (posedge clk_dsp or negedge rst)if(!rst) ram_wdb <= 0;else ram_wdb <= {db_dsp[1:0]};reg ram_wen;always @ (posedge clk_dsp)ram_wen <= ~wr_dsp;reg r_req;always @ (posedge clk_dsp or negedge rst)if(!rst) r_req <= 0;else if(ram_wab_reg=='d719) r_req <= 1;else if(r_ack) r_req <= 0; //***********************data to the dsp****************************////**********************send the raw picture**********************//reg [8:0] ram_rab;always @ (posedge clk_dsp or negedge rst)if(!rst) ram_rab <= 0;else if(!rd_dsp) begin if(ram_rab == 'd359) ram_rab <= 'd0; else ram_rab <= ram_rab + 1; end reg [7:0] db_dsp_reg; always @ (posedge clk_dsp)db_dsp_reg <= ram_rdb;reg s_raw_req;always @ (posedge clk_dsp or negedge rst)if(!rst) s_raw_req <= 0;else if(ram_rab == 'd320) s_raw_req <= 1;else if(s_raw_ack) s_raw_req <= 0; wire [15:0] db_dsp = send_raw?16'hz:{8'd0,db_dsp_reg};endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -