📄 gx_avalon_isp1362.v
字号:
module gx_avalon_isp1362(
//Avalon Interface
// avalon_slave_0
clk,
reset_n,
chipselect_n,
address,
read_n,
write_n,
readdata,
writedata,
irq_n,
// avalon_slave_1
write_n_avalon_slave_1,
writedata_avalon_slave_1,
irq_n_avalon_slave_1,
//Phillips USB controller
OTG_ADDR,
OTG_DATA,
OTG_CS_N,
OTG_RD_N,
OTG_WR_N,
OTG_RST_N,
OTG_INT0,
OTG_INT1,
OTG_FSPEED,
OTG_LSPEED,
OTG_DACK0_N,
OTG_DACK1_N
);
//Avalon Interface
input clk;
input reset_n;
input chipselect_n;
input read_n;
input write_n;
input [1:0] address;
input [15:0] writedata;
output [15:0] readdata;
input write_n_avalon_slave_1;
input [7:0] writedata_avalon_slave_1;
output irq_n, irq_n_avalon_slave_1;
//Phillips USB controller
output [1:0] OTG_ADDR;
inout [15:0] OTG_DATA;
output OTG_CS_N;
output OTG_RD_N;
output OTG_WR_N;
output OTG_RST_N;
input OTG_INT0;
input OTG_INT1;
output OTG_FSPEED;
output OTG_LSPEED;
output OTG_DACK0_N;
output OTG_DACK1_N;
//Registers
reg [15:0] data;
reg [15:0] readdata;
reg irq_n;
reg irq_n_avalon_slave_1;
reg [1:0] OTG_ADDR;
reg OTG_CS_N;
reg OTG_RD_N;
reg OTG_WR_N;
//Assignments
assign OTG_RST_N = reset_n;
assign OTG_DATA = OTG_WR_N ? 16'hZZZZ : data;
assign OTG_DACK0_N = 1'b1;
assign OTG_DACK1_N = 1'b1;
assign OTG_FSPEED = 0;
assign OTG_LSPEED = 0;
//Reset condition
always @ (posedge clk or negedge reset_n)
begin
if (reset_n==0)
begin
data <= 0;
readdata <= 0;
OTG_ADDR <= 0;
OTG_CS_N <= 1;
OTG_RD_N <= 1;
OTG_WR_N <= 1;
irq_n <= 1;
irq_n_avalon_slave_1 <= 1;
end
else
begin
data <= writedata;
readdata <= OTG_DATA;
OTG_ADDR <= address;
OTG_CS_N <= chipselect_n;
OTG_RD_N <= read_n;
OTG_WR_N <= write_n;
irq_n <= OTG_INT0;
irq_n_avalon_slave_1 <= OTG_INT1;
end
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -