Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ----------------------------------------------------------------------------
  2. //    File name: srt.v
  3. //    Designed by: Jim Moran
  4. // ----------------------------------------------------------------------------
  5. //
  6. //    The Synchronous Receiver Transmitter (SRT) provides a receive and a
  7. //  transmit path between a full duplex serial synchronous transmission path
  8. //  and an  eight bit processor interface.
  9. //    
  10. // ----------------------------------------------------------------------------
  11.  
  12. `timescale 1ns/1ps
  13.  
  14. //-----------------------------------------------------------------------------
  15. // Module Declaration
  16. //-----------------------------------------------------------------------------
  17. module srt (
  18.         // Global Signals
  19.         srt_clk_in,     // Clock Input
  20.         srt_rst_l_in,   // Active Low Reset Input
  21.         // Bus Interface
  22.         srt_en_l_in,    // Active Low Bus Enable Input
  23.         srt_wr_l_in,    // Active Low Bus Write Input
  24.         srt_rd_l_in,    // Active Low Bus Read Input
  25.         srt_addr_in,    // Address Input
  26.         srt_data_inout, // Bidirectional Data Bus
  27.             // Serial Interface
  28.         srt_ser_in,     // Serial Data Input
  29.         srt_ser_out     // Serial Data Output
  30.         );
  31.    
  32.    //-----------------------------------------------------------------------------
  33.    // IO Declarations
  34.    //-----------------------------------------------------------------------------
  35.    // Global Signals
  36.    input       srt_clk_in;     // Clock Input
  37.    input       srt_rst_l_in;   // Active Low Reset Input
  38.    // Bus Interface
  39.    input       srt_en_l_in;    // Active Low Bus Enable Input
  40.    input       srt_wr_l_in;    // Active Low Bus Enable Input
  41.    input       srt_rd_l_in;    // Active Low Bus Enable Input
  42.    input [4:0] srt_addr_in;    // Address Input
  43.    inout [7:0] srt_data_inout; // Bidirectional Data Bus
  44.    // Serial Interface
  45.    input       srt_ser_in;     // Serial Data Input
  46.    output      srt_ser_out;     // Serial Data Output
  47.  
  48.    //-----------------------------------------------------------------------------
  49.    // Output Registers
  50.    //-----------------------------------------------------------------------------
  51.    wire        srt_ser_out;  // Serial Data Register
  52.  
  53.    //-----------------------------------------------------------------------------
  54.    // Parameters
  55.    //-----------------------------------------------------------------------------
  56.    parameter [7:0] SRT_IDLE = 8'b01111110;
  57.    parameter [7:0] SRT_SYNC = 8'b10000001;
  58.  
  59.    //-----------------------------------------------------------------------------
  60.    // Internal Registers and Wires
  61.    //-----------------------------------------------------------------------------
  62.    // Transmit Interface
  63.    wire [7:0]  srt_txm_data;
  64.    wire [2:0]  srt_txm_addr;
  65.    wire        srt_txm_start;
  66.    wire        srt_txm_done;
  67.    // Receiver Interface
  68.    wire [7:0]  srt_rxm_data;
  69.    wire [2:0]  srt_rxm_addr;
  70.    wire        srt_rxm_wr;
  71.    wire        srt_rxm_error;
  72.    wire        srt_rxm_done;
  73.    
  74.    //-----------------------------------------------------------------------------
  75.    // Assigns
  76.    //-----------------------------------------------------------------------------
  77.  
  78.    //-----------------------------------------------------------------------------
  79.    // Instantiations
  80.    //-----------------------------------------------------------------------------
  81.    txm #(.TXM_IDLE (SRT_IDLE),
  82.      .TXM_SYNC (SRT_SYNC))
  83.    txm0(
  84.     // Global Signals
  85.     .txm_clk_in (srt_clk_in),        // Clock Input
  86.     .txm_rst_l_in (srt_rst_l_in),    // Active Low Reset Input
  87.     // Transmit Interface
  88.     .txm_data_in (srt_txm_data),     // Data to transmitter Input
  89.     .txm_addr_out (srt_txm_addr),     // Address for tramsitted data Output
  90.     .txm_start_in (srt_txm_start),   // Transmit start Input
  91.     .txm_done_out (srt_txm_done),    // Transmit done Output  
  92.         // Serial Interface
  93.     .txm_ser_out(srt_ser_out)        // Serial Data Output
  94.         );
  95.    
  96.    rxm #(.RXM_IDLE (SRT_IDLE),
  97.      .RXM_SYNC (SRT_SYNC))
  98.    rxm0(
  99.     .rxm_clk_in (srt_clk_in),        // Clock Input
  100.     .rxm_rst_l_in (srt_rst_l_in),    // Active Low Reset Input
  101.     // Receive Interface
  102.     .rxm_data_out (srt_rxm_data),    // Data to transmitter Output
  103.     .rxm_addr_out (srt_rxm_addr),    // Address for tramsitted data Output
  104.     .rxm_wr_out   (srt_rxm_wr),      // Write data enable Output
  105.     .rxm_error_out (srt_rxm_error),  // Checksum error Output
  106.     .rxm_done_out (srt_rxm_done),     // Receive done Output  
  107.         // Serial Interface
  108.     .rxm_ser_in(srt_ser_in)          // Serial Data Input
  109.         );
  110.    
  111.    bus bus0(
  112.         // Global Signals
  113.         .bus_clk_in (srt_clk_in),           // Clock Input
  114.         .bus_rst_l_in (srt_rst_l_in),       // Active Low Reset Input
  115.             // Bus Interface
  116.         .bus_en_l_in (srt_en_l_in),         // Active Low Bus Enable Input
  117.         .bus_wr_l_in (srt_wr_l_in),         // Active Low Bus Write Input
  118.         .bus_rd_l_in (srt_rd_l_in),        // Active Low Bus Read Input
  119.         .bus_addr_in (srt_addr_in),         // Addrress Input
  120.         .bus_data_inout (srt_data_inout),   // Bidirectional Data Bus Inout
  121.         // Receive Interface
  122.         .bus_rxm_data_in (srt_rxm_data),    // Data from recveived Input
  123.         .bus_rxm_addr_in (srt_rxm_addr),    // Address for received data Input
  124.         .bus_rxm_wr_in (srt_rxm_wr),        // Write data enable Input
  125.         .bus_rxm_error_in (srt_rxm_error),  // Checksum error Input
  126.         .bus_rxm_done_in (srt_rxm_done),    // Receiver done Input
  127.         // Transmit Interface
  128.         .bus_txm_data_out (srt_txm_data),   // Data to transmitter Output
  129.         .bus_txm_addr_in (srt_txm_addr),    // Address for tramsitted data Input
  130.         .bus_txm_start_out (srt_txm_start), // Transmit start Output
  131.         .bus_txm_done_in (srt_txm_done)     // Transmit done Input  
  132.         );
  133.  
  134.    //-----------------------------------------------------------------------------
  135.    // RTL
  136.    //-----------------------------------------------------------------------------
  137.  
  138. endmodule // srt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement