ICB总线从机交互模板

目录

`include "e203_defines.v"
module e203_appi (
	input	wire				clk,
	input	wire				rst_n,

	input	wire				appi_icb_cmd_valid,
	output	wire				appi_icb_cmd_ready,
	input	wire[`E203_ADDR_SIZE-1:0]appi_icb_cmd_addr,
	input	wire				appi_icb_cmd_read,
	input  	wire[`E203_XLEN-1:0]appi_icb_cmd_wdata,
	input  	wire[`E203_XLEN/8-1:0]appi_icb_cmd_wmask,//可选信号

	output	reg					appi_icb_rsp_valid,
	input	wire				appi_icb_rsp_ready,
	output	wire				appi_icb_rsp_err,
	output	reg [`E203_XLEN-1:0]appi_icb_rsp_rdata
	//// 

);
//registers
reg [31:0] REG0;//a=0x00
reg [31:0] REG1;//04
reg [31:0] REG2;//08


wire [7:0] offset;
assign offset=appi_icb_cmd_addr[7:0];

//总线交互
//握手
wire cfg_icb_cmd_hsked=appi_icb_cmd_valid & appi_icb_cmd_ready;
//appi_icb_cmd_ready
assign appi_icb_cmd_ready=(appi_icb_cmd_valid & ~appi_icb_cmd_read) | (appi_icb_cmd_valid & appi_icb_cmd_read & ~appi_icb_rsp_valid);
//appi_icb_rsp_err
assign appi_icb_rsp_err=1'b0;
//appi_icb_rsp_valid
always @(posedge clk or negedge rst_n)
if (~rst_n)
	appi_icb_rsp_valid<=1'b0;
else begin
	if (cfg_icb_cmd_hsked)
		appi_icb_rsp_valid<=1'b1;
	else if ((appi_icb_rsp_valid)&&(appi_icb_rsp_ready))
		appi_icb_rsp_valid<=1'b0;
	else
		appi_icb_rsp_valid<=appi_icb_rsp_valid;
end
//r
always @(posedge clk or negedge rst_n)
if (~rst_n)
	appi_icb_rsp_rdata<=32'b0;
else begin
	if (appi_icb_rsp_valid)
		appi_icb_rsp_rdata<=appi_icb_rsp_rdata;
	else 
		if ((cfg_icb_cmd_hsked)&&(appi_icb_cmd_read))
			case (offset)
			8'h00: appi_icb_rsp_rdata<=REG0;
			8'h04: appi_icb_rsp_rdata<=REG1;
			8'h08: appi_icb_rsp_rdata<=REG2;
			default: appi_icb_rsp_rdata<=32'b0;
			endcase
		else
	  		appi_icb_rsp_rdata<=32'b0;
  end
//w
always @(posedge clk or negedge rst_n)
if (!rst_n) begin
	REG0<=0;
	REG1<=0;
	REG2<=0;
end
else begin
	if((cfg_icb_cmd_hsked)&&(~appi_icb_cmd_read)) begin 
		case (offset)
			8'h00:REG0<=appi_icb_cmd_wdata;
			8'h04:REG1<=appi_icb_cmd_wdata;
			8'h08:REG2<=appi_icb_cmd_wdata;
			default :;
		endcase
	end
	else begin 
//????
	end
end
endmodule

打赏?

取消

不用哦

扫码支持
这里只有暗黑赛钱箱

深邃♂黑暗♂幻想

>