📄 udeviceintf.v
字号:
module Udeviceintf
(
// inputs from sie
usbclock, // 12 MHz clock
usbreset, // usb reset signal
turnaround,
rcvdatabyte,
rcvdatabytevalid,
rcvaddress,
rcvaddressvalid,
rcvendpoint,
rcvendpointvalid,
rcvsof,
rcvdatatogglebit,
rcvack,
rcvdata,
rcvdatain,
rcvdataout,
rcvsetup,
rcvpacketok,
rcvpacketnotok,
nextxmitbyte,
acksent,
datasent,
naksent,
stallsent,
syncreset,
// outputs to sie
xmitlastbyte,
xmitdatatogglebit,
xmitdatabyte,
senddata,
sendnak,
sendack,
sendstall,
// rom
devromdescriptorindex,
devromsetupaddr,
romdevsetupdata,
romen,
endp0internaltogglebit,
setupcycle,
setupbyteaddr,
setupdata,
// all endpoints
endpwrdata,
datapacketok,
datapacketnotok,
synthsof,
hstframenumber,
framenumber,
`include "Uvendorcmdios.v"
`include "Udevios.v"
);
input usbclock; // 12 MHz clock
input usbreset; // usb reset signal
input turnaround;
input [7:0] rcvdatabyte;
input rcvdatabytevalid;
input [6:0] rcvaddress;
input rcvaddressvalid;
input [3:0] rcvendpoint;
input rcvendpointvalid;
input rcvsof;
input rcvdatatogglebit;
input rcvack;
input rcvdata;
input rcvdatain;
input rcvdataout;
input rcvsetup;
input rcvpacketok;
input rcvpacketnotok;
input nextxmitbyte;
input acksent;
input datasent;
input naksent;
input stallsent;
input syncreset;
// outputs to sie
output xmitlastbyte;
output xmitdatatogglebit;
output [7:0] xmitdatabyte;
output senddata;
output sendnak;
output sendack;
output sendstall;
// outputs to device
output [6:0] devromdescriptorindex;
output [7:0] devromsetupaddr;
input [7:0] romdevsetupdata;
output romen;
output endp0internaltogglebit;
output setupcycle;
input [2:0] setupbyteaddr;
output [7:0] setupdata;
output [7:0] endpwrdata;
output datapacketok;
output datapacketnotok;
output synthsof;
input [10:0] hstframenumber;
output [10:0] framenumber;
// Here is the continuation of the input/output declarations and the
// register declarations
//`ifdef CUSTOMCORE
`include "Udevinouts.v"
`include "Uvendorcmdinouts.v"
wire [7:0] endpwrdata;
// create read data wires, even if we might not nead them all
wire [7:0] endp2rddata;
wire [7:0] devromsetupaddr; // up to 255
Udevctl ctl (
// inputs from sie
.usbclock (usbclock),
.usbreset (usbreset),
.syncreset (syncreset),
.turnaround (turnaround),
.rcvdatabyte (rcvdatabyte),
.rcvdatabytevalid (rcvdatabytevalid),
.rcvaddress (rcvaddress),
.rcvaddressvalid (rcvaddressvalid),
.rcvendpoint (rcvendpoint),
.rcvendpointvalid (rcvendpointvalid),
.rcvdatatogglebit (rcvdatatogglebit),
.rcvack (rcvack),
.rcvdata (rcvdata),
.rcvdatain (rcvdatain),
.rcvdataout (rcvdataout),
.rcvsetup (rcvsetup),
.rcvpacketok (rcvpacketok),
.rcvpacketnotok (rcvpacketnotok),
.nextxmitbyte (nextxmitbyte),
.acksent (acksent),
.datasent (datasent),
.naksent (naksent),
.stallsent (stallsent),
// outputs to sie
.xmitlastbyte (xmitlastbyte),
.xmitdatatogglebit (xmitdatatogglebit),
.xmitdatabyte (xmitdatabyte),
.senddata (senddata),
.sendnak (sendnak),
.sendack (sendack),
.sendstall (sendstall),
// connections to all endpoints
.devromsetupaddr (devromsetupaddr),
.endpwrdata (endpwrdata),
.datapacketok (datapacketok),
.datapacketnotok (datapacketnotok),
// connections to endpoint0
.romdevsetupdata (romdevsetupdata),
.devromdescriptorindex (devromdescriptorindex),
.romen (romen),
.endp0internaltogglebit (endp0internaltogglebit),
.setupcycle (setupcycle),
.setupbyteaddr (setupbyteaddr),
.setupdata (setupdata),
// connections to endpoints
`include "Uvendorconnections.v"
`include "Udevconnections.v"
Udevsof sof (
// inputs
.usbclock (usbclock),
.usbreset (usbreset),
.rcvsof (rcvsof),
.hstframenumber (hstframenumber),
// outputs to device
.synthsof (synthsof),
.framenumber (framenumber)
);
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -