⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udeviceintf.v

📁 USBRTL电路的VHDL和Verilog代码
💻 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 + -