OpenCores
URL https://opencores.org/ocsvn/usbhostslave/usbhostslave/trunk

Subversion Repositories usbhostslave

[/] [usbhostslave/] [tags/] [rel_01_00/] [RTL/] [wrapper/] [usbHostSlaveWrap.v] - Blame information for rev 43

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 sfielding
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
//// usbHostSlaveWrap.v                                               ////
4
////                                                              ////
5
//// This file is part of the usbhostslave opencores effort.
6
//// <http://www.opencores.org/cores//>                           ////
7
////                                                              ////
8
//// Module Description:                                          ////
9 9 sfielding
////   Top level module wrapper. Enable connection to Altera Avalon bus
10 6 sfielding
////                                                              ////
11
//// To Do:                                                       ////
12
//// 
13
////                                                              ////
14
//// Author(s):                                                   ////
15
//// - Steve Fielding, sfielding@base2designs.com                 ////
16
////                                                              ////
17
//////////////////////////////////////////////////////////////////////
18
////                                                              ////
19
//// Copyright (C) 2004 Steve Fielding and OPENCORES.ORG          ////
20
////                                                              ////
21
//// This source file may be used and distributed without         ////
22
//// restriction provided that this copyright statement is not    ////
23
//// removed from the file and that any derivative work contains  ////
24
//// the original copyright notice and the associated disclaimer. ////
25
////                                                              ////
26
//// This source file is free software; you can redistribute it   ////
27
//// and/or modify it under the terms of the GNU Lesser General   ////
28
//// Public License as published by the Free Software Foundation; ////
29
//// either version 2.1 of the License, or (at your option) any   ////
30
//// later version.                                               ////
31
////                                                              ////
32
//// This source is distributed in the hope that it will be       ////
33
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
34
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
35
//// PURPOSE. See the GNU Lesser General Public License for more  ////
36
//// details.                                                     ////
37
////                                                              ////
38
//// You should have received a copy of the GNU Lesser General    ////
39
//// Public License along with this source; if not, download it   ////
40
//// from <http://www.opencores.org/lgpl.shtml>                   ////
41
////                                                              ////
42
//////////////////////////////////////////////////////////////////////
43
//
44 9 sfielding
`timescale 1ns / 1ps
45 6 sfielding
 
46 9 sfielding
 
47 6 sfielding
module usbHostSlaveWrap(
48
  clk,
49
  reset,
50
  address,
51
  writedata,
52
  readdata,
53
  write,
54
  read,
55
  waitrequest,
56
  chipselect,
57 18 sfielding
  irq,
58
  usbClk,
59 6 sfielding
  USBWireVPI,
60
  USBWireVMI,
61
  USBWireDataInTick,
62
  USBWireVPO,
63
  USBWireVMO,
64
  USBWireDataOutTick,
65
  USBWireOutEn_n,
66 12 sfielding
  USBFullSpeed
67 6 sfielding
   );
68
 
69
input clk;
70
input reset;
71
input [7:0] address;
72
input [7:0] writedata;
73
output [7:0] readdata;
74
input write;
75
input read;
76
output waitrequest;
77
input chipselect;
78 18 sfielding
output irq;
79
input usbClk;
80 6 sfielding
input USBWireVPI;
81
input USBWireVMI;
82
output USBWireVPO;
83
output USBWireVMO;
84
output USBWireDataOutTick;
85
output USBWireDataInTick;
86
output USBWireOutEn_n;
87
output USBFullSpeed;
88
 
89
wire clk;
90
wire reset;
91
wire [7:0] address;
92
wire [7:0] writedata;
93
wire [7:0] readdata;
94
wire write;
95
wire read;
96
wire waitrequest;
97
wire chipselect;
98
wire irq;
99 18 sfielding
wire usbClk;
100 6 sfielding
wire USBWireVPI;
101
wire USBWireVMI;
102
wire USBWireVPO;
103
wire USBWireVMO;
104
wire USBWireDataOutTick;
105
wire USBWireDataInTick;
106
wire USBWireOutEn_n;
107
wire USBFullSpeed;
108
 
109
//internal wiring 
110
wire strobe_i;
111
wire ack_o;
112
wire hostSOFSentIntOut;
113
wire hostConnEventIntOut;
114
wire hostResumeIntOut;
115
wire hostTransDoneIntOut;
116
wire slaveSOFRxedIntOut;
117
wire slaveResetEventIntOut;
118
wire slaveResumeIntOut;
119
wire slaveTransDoneIntOut;
120
wire slaveNAKSentIntOut;
121
wire USBWireCtrlOut;
122
wire [1:0] USBWireDataIn;
123
wire [1:0] USBWireDataOut;
124
 
125
 
126
assign irq = hostSOFSentIntOut | hostConnEventIntOut |
127
             hostResumeIntOut | hostTransDoneIntOut |
128
             slaveSOFRxedIntOut | slaveResetEventIntOut |
129
             slaveResumeIntOut | slaveTransDoneIntOut |
130
             slaveNAKSentIntOut;
131
 
132
assign strobe_i = chipselect & ( read | write);
133
assign waitrequest = ~ack_o;
134
 
135
assign USBWireOutEn_n = ~USBWireCtrlOut;
136
 
137
assign USBWireDataIn = {USBWireVPI, USBWireVMI};
138
assign {USBWireVPO, USBWireVMO} = USBWireDataOut;
139
 
140
//Parameters declaration: 
141
defparam usbHostSlaveInst.HOST_FIFO_DEPTH = 64;
142
parameter HOST_FIFO_DEPTH = 64;
143
defparam usbHostSlaveInst.HOST_FIFO_ADDR_WIDTH = 6;
144
parameter HOST_FIFO_ADDR_WIDTH = 6;
145
defparam usbHostSlaveInst.EP0_FIFO_DEPTH = 64;
146
parameter EP0_FIFO_DEPTH = 64;
147
defparam usbHostSlaveInst.EP0_FIFO_ADDR_WIDTH = 6;
148
parameter EP0_FIFO_ADDR_WIDTH = 6;
149
defparam usbHostSlaveInst.EP1_FIFO_DEPTH = 64;
150
parameter EP1_FIFO_DEPTH = 64;
151
defparam usbHostSlaveInst.EP1_FIFO_ADDR_WIDTH = 6;
152
parameter EP1_FIFO_ADDR_WIDTH = 6;
153
defparam usbHostSlaveInst.EP2_FIFO_DEPTH = 64;
154
parameter EP2_FIFO_DEPTH = 64;
155
defparam usbHostSlaveInst.EP2_FIFO_ADDR_WIDTH = 6;
156
parameter EP2_FIFO_ADDR_WIDTH = 6;
157
defparam usbHostSlaveInst.EP3_FIFO_DEPTH = 64;
158
parameter EP3_FIFO_DEPTH = 64;
159
defparam usbHostSlaveInst.EP3_FIFO_ADDR_WIDTH = 6;
160
parameter EP3_FIFO_ADDR_WIDTH = 6;
161
usbHostSlave usbHostSlaveInst (
162 18 sfielding
  .clk_i(clk),
163
  .rst_i(reset),
164 6 sfielding
  .address_i(address),
165
  .data_i(writedata),
166
  .data_o(readdata),
167 18 sfielding
  .we_i(write),
168 6 sfielding
  .strobe_i(strobe_i),
169
  .ack_o(ack_o),
170 18 sfielding
  .usbClk(usbClk),
171 6 sfielding
  .hostSOFSentIntOut(hostSOFSentIntOut),
172
  .hostConnEventIntOut(hostConnEventIntOut),
173
  .hostResumeIntOut(hostResumeIntOut),
174
  .hostTransDoneIntOut(hostTransDoneIntOut),
175
  .slaveSOFRxedIntOut(slaveSOFRxedIntOut),
176
  .slaveResetEventIntOut(slaveResetEventIntOut),
177
  .slaveResumeIntOut(slaveResumeIntOut),
178
  .slaveTransDoneIntOut(slaveTransDoneIntOut),
179
  .slaveNAKSentIntOut(slaveNAKSentIntOut),
180
  .USBWireDataIn(USBWireDataIn),
181
  .USBWireDataInTick(USBWireDataInTick),
182
  .USBWireDataOut(USBWireDataOut),
183
  .USBWireDataOutTick(USBWireDataOutTick),
184 9 sfielding
  .USBWireCtrlOut(USBWireCtrlOut),
185
  .USBFullSpeed(USBFullSpeed));
186 6 sfielding
 
187
 
188
endmodule
189
 
190
 
191
 
192
 
193
 
194
 
195
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.