HDL Framework (USB 3.0)

This section contains template definitions of the top-level module for FrontPanel-enabled USB 3.0 devices in Verilog and VHDL. It is applicable to the examples for Wires, Triggers, Pipes, and Registers. This boilerplate is familiar if you’ve looked through our samples. To keep the examples brief, we won’t duplicate this code for each one.

Verilog

module Framework(
          input wire [4:0] okUH,
          output wire[2:0] okHU,
          inout wire[31:0] okUHU,
          inout wire okAA,
          input wire sys_clkn,
          input wire sys_clkp,
          input wire reset
          // Your signals here
     );
 
     // Clock
     wire sys_clk;
 
     IBUFGDS osc_clk(
          .O(sys_clk),
          .I(sys_clkp),
          .IB(sys_clkn)
     );
 
     //FP wires	
     wire okClk;
     wire [112:0] okHE;
     wire [64:0] okEH;
     wire [5*65-1:0] okEHx;
     // Adjust size of okEHx to fit the number of outgoing endpoints in your design (n*65-1:0)
 
     //Your HDL here
 
     okHost hostIF (
          .okUH(okUH),
          .okHU(okHU),
          .okUHU(okUHU),
          .okClk(okClk),
          .okAA(okAA),
          .okHE(okHE),
          .okEH(okEH)
     );
 
     // Adjust N to fit the number of outgoing endpoints in your design (.N(n))
     okWireOR # (.N(1)) wireOR (okEH, okEHx);
     
     // Your FrontPanel module instantiations here
 
endmoduleCode language: PHP (php)

VHDL

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_misc.all;
use IEEE.std_logic_unsigned.all;
 
Library UNISIM;
use UNISIM.vcomponents.all;
 
use work.FRONTPANEL.all;
 
 
entity Framework is
     port(
          okUH : in STD_LOGIC_VECTOR(4 downto 0);
          okHU : out STD_LOGIC_VECTOR(2 downto 0);
          okUHU : inout STD_LOGIC_VECTOR(31 downto 0);
          okAA : inout  STD_LOGIC;
 
          sys_clkp : in STD_LOGIC;
          sys_clkn : in STD_LOGIC;
 
          -- Your signals here
     );
end Framework;
 
architecture Behavioral of Framework is
     --FP signals
     signal okClk : STD_LOGIC;
     signal okHE : STD_LOGIC_VECTOR(112 downto 0);
     signal okEH : STD_LOGIC_VECTOR(64 downto 0);
     signal okEHx : STD_LOGIC_VECTOR(65*5-1 downto 0);
     -- Adjust size of okEHx to fit the number of outgoing endpoints in your design (65*n-1 downto 0)
     signal sys_clk : STD_LOGIC;
 
     --Your signals here
 
begin
 
--Your HDL here
 
osc_clk : IBUFGDS port map (
     O=>sys_clk,
     I=>sys_clkp,
     IB=>sys_clkn
);
 
-- Instantiate the okHost and connect endpoints
okHI : okHost port map (
     okUH=>okUH, 
     okHU=>okHU, 
     okUHU=>okUHU, 
     okAA=>okAA,
     okClk=>okClk, 
     okHE=>okHE, 
     okEH=>okEH
);
 
-- Adjust N to fit the number of outgoing endpoints in your design (N=>n)
okWO : okWireOR generic map (N=>5) port map (okEH=>okEH, okEHx=>okEHx);
 
-- Your FrontPanel Module instantiations here
 
end Behavioral;Code language: PHP (php)