isp1362_if.v

来自「Altera FPGA 上利用nios嵌入式处理器实现USB的通信控制」· Verilog 代码 · 共 82 行

V
82
字号
module ISP1362_IF(	//	HOST Side
					iDATA,
					oDATA,
					iADDR,
					iRD_N,
					iWR_N,
					iCS_N,
					iRST_N,
					iCLK,
					oINT0_N,
					oINT1_N,
					//	ISP1362 Side
					OTG_DATA,
					OTG_ADDR,
					OTG_RD_N,
					OTG_WR_N,
					OTG_CS_N,
					OTG_RST_N,
					OTG_INT0,
					OTG_INT1	);
//	HOST Side
input	[15:0]	iDATA;
input	[1:0]	iADDR;
input			iRD_N;
input			iWR_N;
input			iCS_N;
input			iRST_N;
input			iCLK;
output	[15:0]	oDATA;
output			oINT0_N;
output			oINT1_N;
//	ISP1362 Side
inout	[15:0]	OTG_DATA;
output	[1:0]	OTG_ADDR;
output			OTG_RD_N;
output			OTG_WR_N;
output			OTG_CS_N;
output			OTG_RST_N;
input			OTG_INT0;
input			OTG_INT1;

reg		[1:0]	OTG_ADDR;
reg				OTG_RD_N;
reg				OTG_WR_N;
reg				OTG_CS_N;
reg		[15:0]	TMP_DATA;
reg		[15:0]	oDATA;
reg				oINT0_N;
reg				oINT1_N;

assign	OTG_DATA	=	OTG_WR_N	?	16'hzzzz	:	TMP_DATA	;

always@(posedge iCLK or negedge iRST_N)
begin
	if(!iRST_N)
	begin
		TMP_DATA	<=	0;
		OTG_ADDR	<=	0;
		OTG_RD_N	<=	1;
		OTG_WR_N	<=	1;
		OTG_CS_N	<=	1;
		TMP_DATA	<=	0;
		oDATA		<=	0;
		oINT0_N		<=	1;
		oINT1_N		<=	1;
	end
	else
	begin
		oDATA		<=	OTG_DATA;
		oINT0_N		<=	OTG_INT0;
		oINT1_N		<=	OTG_INT1;
		TMP_DATA	<=	iDATA;
		OTG_ADDR 	<=	iADDR;
		OTG_RD_N 	<=	iRD_N;
		OTG_WR_N	<=	iWR_N;
		OTG_CS_N	<=	iCS_N;
	end
end

assign	OTG_RST_N	=	iRST_N;

endmodule

⌨️ 快捷键说明

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