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

Subversion Repositories pit

[/] [pit/] [trunk/] [rtl/] [sys_verilog/] [pit_top.sv] - Diff between revs 22 and 24

Show entire file | Details | Blame | View Log

Rev 22 Rev 24
Line 34... Line 34...
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
 
 
module pit_top #(parameter ARST_LVL = 1'b0,      // asynchronous reset level
module pit_top #(parameter D_WIDTH = 16,
 
                 parameter ARST_LVL = 1'b0,      // asynchronous reset level
 
                 parameter SINGLE_CYCLE = 1'b0,  // Add a wait state to bus transcation
                 parameter PRE_COUNT_SIZE = 15,  // Prescale Counter size
                 parameter PRE_COUNT_SIZE = 15,  // Prescale Counter size
                 parameter COUNT_SIZE = 16,      // Main counter size
                 parameter COUNT_SIZE = 16,      // Main counter size
                 parameter DECADE_CNTR = 1'b1,   // Prescale rollover decode
                 parameter DECADE_CNTR = 1'b1,   // Prescale rollover decode
                 parameter NO_PRESCALE = 1'b0,   // Remove prescale function
                 parameter NO_PRESCALE = 1'b0)   // Remove prescale function
                 parameter SINGLE_CYCLE = 1'b0,  // No bus wait state added
 
                 parameter DWIDTH = 16)          // Data bus width
 
  (
  (
  // Wishbone Signals
  // Wishbone Signals
  output [DWIDTH-1:0] wb_dat_o,     // databus output
  wishbone_if.slave          wb,        // Wishbone interface instance
  output              wb_ack_o,     // bus cycle acknowledge output
  output logic [D_WIDTH-1:0] wb_dat_o,  // databus output - Pseudo Register
  input               wb_clk_i,     // master clock input
  output logic               wb_ack,    // bus cycle acknowledge output
  input               wb_rst_i,     // synchronous active high reset
  input  logic               wb_stb,    // stobe/core select signal
  input               arst_i,       // asynchronous reset
 
  input         [2:0] wb_adr_i,     // lower address bits
 
  input  [DWIDTH-1:0] wb_dat_i,     // databus input
 
  input               wb_we_i,      // write enable input
 
  input               wb_stb_i,     // stobe/core select signal
 
  input               wb_cyc_i,     // valid bus cycle input
 
  input         [1:0] wb_sel_i,     // Select byte in word bus transaction
 
  // PIT IO Signals
  // PIT IO Signals
  output              pit_o,        // PIT output pulse
  output              pit_o,        // PIT output pulse
  output              pit_irq_o,    // PIT interrupt request signal output
  output              pit_irq_o,    // PIT interrupt request signal output
  output              cnt_flag_o,   // PIT Flag Out
  output              cnt_flag_o,   // PIT Flag Out
  output              cnt_sync_o,   // PIT Master Enable for Slave PIT's
  output              cnt_sync_o,   // PIT Master Enable for Slave PIT's
Line 76... Line 69...
  logic                  counter_sync;  //
  logic                  counter_sync;  //
  logic                  pit_flag;      //
  logic                  pit_flag;      //
 
 
  // Wishbone Bus interface
  // Wishbone Bus interface
  pit_wb_bus #(.ARST_LVL(ARST_LVL),
  pit_wb_bus #(.ARST_LVL(ARST_LVL),
               .SINGLE_CYCLE(SINGLE_CYCLE),
               .D_WIDTH     (D_WIDTH))
               .DWIDTH(DWIDTH))
 
    wishbone(
    wishbone(
 
    // Wishbone Signals
 
    .wb           ( wb ),
 
    .wb_stb       ( wb_stb ),
 
    .wb_ack       ( wb_ack ),
      .irq_source   ( cnt_flag_o ),
      .irq_source   ( cnt_flag_o ),
      .read_regs    (               // in  -- status register bits
      .read_regs    (               // in  -- status register bits
                     { cnt_n,
                     { cnt_n,
                       mod_value,
                       mod_value,
                       {pit_slave, DECADE_CNTR, NO_PRESCALE, 1'b0, pit_pre_scl,
                       {pit_slave, DECADE_CNTR, NO_PRESCALE, 1'b0, pit_pre_scl,
Line 90... Line 86...
                     }
                     }
                    ),
                    ),
    .*);
    .*);
 
 
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
  pit_regs #(.ARST_LVL(ARST_LVL),
  pit_regs #(.COUNT_SIZE(COUNT_SIZE),
             .COUNT_SIZE(COUNT_SIZE),
 
             .NO_PRESCALE(NO_PRESCALE),
             .NO_PRESCALE(NO_PRESCALE),
             .DWIDTH(DWIDTH))
             .D_WIDTH(D_WIDTH))
    regs(
    regs(
      .bus_clk      ( wb_clk_i ),
      .bus_clk      ( wb.wb_clk ),
      .write_bus    ( wb_dat_i ),
      .write_bus    ( wb.wb_dat ),
      .*);
      .*);
 
 
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
  pit_prescale #(.COUNT_SIZE(PRE_COUNT_SIZE),
  pit_prescale #(.COUNT_SIZE(PRE_COUNT_SIZE),
                 .DECADE_CNTR(DECADE_CNTR),
                 .DECADE_CNTR(DECADE_CNTR),
                 .NO_PRESCALE(NO_PRESCALE))
                 .NO_PRESCALE(NO_PRESCALE))
    prescale(
    prescale(
    .bus_clk      ( wb_clk_i ),
    .bus_clk      ( wb.wb_clk ),
    .divisor      ( pit_pre_scl ),
    .divisor      ( pit_pre_scl ),
    .*);
    .*);
 
 
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
  pit_count #(.COUNT_SIZE(COUNT_SIZE))
  pit_count #(.COUNT_SIZE(COUNT_SIZE))
    counter(
    counter(
    .bus_clk      ( wb_clk_i ),
    .bus_clk      ( wb.wb_clk ),
    .*);
    .*);
 
 
endmodule // pit_top
endmodule // pit_top

powered by: WebSVN 2.1.0

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