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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [core/] [bench/] [verilog/] [tb_openMSP430.v] - Diff between revs 23 and 33

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 23 Rev 33
Line 29... Line 29...
//
//
// *Author(s):
// *Author(s):
//              - Olivier Girard,    olgirard@gmail.com
//              - Olivier Girard,    olgirard@gmail.com
//
//
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// $Rev: 23 $
// $Rev: 33 $
// $LastChangedBy: olivier.girard $
// $LastChangedBy: olivier.girard $
// $LastChangedDate: 2009-08-30 18:39:26 +0200 (Sun, 30 Aug 2009) $
// $LastChangedDate: 2009-12-29 19:18:00 +0100 (Tue, 29 Dec 2009) $
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
`include "timescale.v"
`include "timescale.v"
`include "openMSP430_defines.v"
`include "openMSP430_defines.v"
 
 
 
 
Line 43... Line 43...
 
 
//
//
// Wire & Register definition
// Wire & Register definition
//------------------------------
//------------------------------
 
 
// RAM interface
// Data Memory interface
wire [`RAM_MSB:0] ram_addr;
wire [`DMEM_MSB:0] dmem_addr;
wire              ram_cen;
wire               dmem_cen;
wire       [15:0] ram_din;
wire        [15:0] dmem_din;
wire        [1:0] ram_wen;
wire         [1:0] dmem_wen;
wire       [15:0] ram_dout;
wire        [15:0] dmem_dout;
 
 
// ROM interface
// Program Memory interface
wire [`ROM_MSB:0] rom_addr;
wire [`PMEM_MSB:0] pmem_addr;
wire              rom_cen;
wire               pmem_cen;
wire       [15:0] rom_din_dbg;
wire        [15:0] pmem_din;
wire        [1:0] rom_wen_dbg;
wire         [1:0] pmem_wen;
wire       [15:0] rom_dout;
wire        [15:0] pmem_dout;
 
 
// Peripherals interface
// Peripherals interface
wire        [7:0] per_addr;
wire        [7:0] per_addr;
wire       [15:0] per_din;
wire       [15:0] per_din;
wire       [15:0] per_dout;
wire       [15:0] per_dout;
Line 168... Line 168...
//
//
// Initialize ROM
// Initialize ROM
//------------------------------
//------------------------------
initial
initial
  begin
  begin
     $readmemh("./rom.mem", rom_0.mem);
     $readmemh("./pmem.mem", pmem_0.mem);
  end
  end
 
 
//
//
// Generate Clock & Reset
// Generate Clock & Reset
//------------------------------
//------------------------------
Line 220... Line 220...
     ta_cci2b      = 1'b0;
     ta_cci2b      = 1'b0;
  end
  end
 
 
 
 
//
//
// ROM
// Program Memory
//----------------------------------
//----------------------------------
 
 
ram #(`ROM_MSB) rom_0 (
ram #(`PMEM_MSB) pmem_0 (
 
 
// OUTPUTs
// OUTPUTs
    .ram_dout    (rom_dout),           // ROM data output
    .ram_dout    (pmem_dout),          // Program Memory data output
 
 
// INPUTs
// INPUTs
    .ram_addr    (rom_addr),           // ROM address
    .ram_addr    (pmem_addr),          // Program Memory address
    .ram_cen     (rom_cen),            // ROM chip enable (low active)
    .ram_cen     (pmem_cen),           // Program Memory chip enable (low active)
    .ram_clk     (mclk),               // ROM clock
    .ram_clk     (mclk),               // Program Memory clock
    .ram_din     (rom_din_dbg),        // ROM data input
    .ram_din     (pmem_din),           // Program Memory data input
    .ram_wen     (rom_wen_dbg)         // ROM write enable (low active)
    .ram_wen     (pmem_wen)            // Program Memory write enable (low active)
);
);
 
 
 
 
//
//
// RAM
// Data Memory
//----------------------------------
//----------------------------------
 
 
ram #(`RAM_MSB) ram_0 (
ram #(`DMEM_MSB) dmem_0 (
 
 
// OUTPUTs
// OUTPUTs
    .ram_dout    (ram_dout),           // RAM data output
    .ram_dout    (dmem_dout),          // Data Memory data output
 
 
// INPUTs
// INPUTs
    .ram_addr    (ram_addr),           // RAM address
    .ram_addr    (dmem_addr),          // Data Memory address
    .ram_cen     (ram_cen),            // RAM chip enable (low active)
    .ram_cen     (dmem_cen),           // Data Memory chip enable (low active)
    .ram_clk     (mclk),               // RAM clock
    .ram_clk     (mclk),               // Data Memory clock
    .ram_din     (ram_din),            // RAM data input
    .ram_din     (dmem_din),           // Data Memory data input
    .ram_wen     (ram_wen)             // RAM write enable (low active)
    .ram_wen     (dmem_wen)            // Data Memory write enable (low active)
);
);
 
 
 
 
//
//
// openMSP430 Instance
// openMSP430 Instance
Line 265... Line 265...
 
 
// OUTPUTs
// OUTPUTs
    .aclk_en      (aclk_en),           // ACLK enable
    .aclk_en      (aclk_en),           // ACLK enable
    .dbg_freeze   (dbg_freeze),        // Freeze peripherals
    .dbg_freeze   (dbg_freeze),        // Freeze peripherals
    .dbg_uart_txd (dbg_uart_txd),      // Debug interface: UART TXD
    .dbg_uart_txd (dbg_uart_txd),      // Debug interface: UART TXD
 
    .dmem_addr    (dmem_addr),         // Data Memory address
 
    .dmem_cen     (dmem_cen),          // Data Memory chip enable (low active)
 
    .dmem_din     (dmem_din),          // Data Memory data input
 
    .dmem_wen     (dmem_wen),          // Data Memory write enable (low active)
    .irq_acc      (irq_acc),           // Interrupt request accepted (one-hot signal)
    .irq_acc      (irq_acc),           // Interrupt request accepted (one-hot signal)
    .mclk         (mclk),              // Main system clock
    .mclk         (mclk),              // Main system clock
    .per_addr     (per_addr),          // Peripheral address
    .per_addr     (per_addr),          // Peripheral address
    .per_din      (per_din),           // Peripheral data input
    .per_din      (per_din),           // Peripheral data input
    .per_wen      (per_wen),           // Peripheral write enable (high active)
    .per_wen      (per_wen),           // Peripheral write enable (high active)
    .per_en       (per_en),            // Peripheral enable (high active)
    .per_en       (per_en),            // Peripheral enable (high active)
 
    .pmem_addr    (pmem_addr),         // Program Memory address
 
    .pmem_cen     (pmem_cen),          // Program Memory chip enable (low active)
 
    .pmem_din     (pmem_din),          // Program Memory data input (optional)
 
    .pmem_wen     (pmem_wen),          // Program Memory write enable (low active) (optional)
    .puc          (puc),               // Main system reset
    .puc          (puc),               // Main system reset
    .ram_addr     (ram_addr),          // RAM address
 
    .ram_cen      (ram_cen),           // RAM chip enable (low active)
 
    .ram_din      (ram_din),           // RAM data input
 
    .ram_wen      (ram_wen),           // RAM write enable (low active)
 
    .rom_addr     (rom_addr),          // ROM address
 
    .rom_cen      (rom_cen),           // ROM chip enable (low active)
 
    .rom_din_dbg  (rom_din_dbg),       // ROM data input --FOR DEBUG INTERFACE--
 
    .rom_wen_dbg  (rom_wen_dbg),       // ROM write enable (low active) --FOR DBG IF--
 
    .smclk_en     (smclk_en),          // SMCLK enable
    .smclk_en     (smclk_en),          // SMCLK enable
 
 
// INPUTs
// INPUTs
    .dbg_uart_rxd (dbg_uart_rxd),      // Debug interface: UART RXD
    .dbg_uart_rxd (dbg_uart_rxd),      // Debug interface: UART RXD
    .dco_clk      (dco_clk),           // Fast oscillator (fast clock)
    .dco_clk      (dco_clk),           // Fast oscillator (fast clock)
 
    .dmem_dout    (dmem_dout),         // Data Memory data output
    .irq          (irq_in),            // Maskable interrupts
    .irq          (irq_in),            // Maskable interrupts
    .lfxt_clk     (lfxt_clk),          // Low frequency oscillator (typ 32kHz)
    .lfxt_clk     (lfxt_clk),          // Low frequency oscillator (typ 32kHz)
    .nmi          (nmi),               // Non-maskable interrupt (asynchronous)
    .nmi          (nmi),               // Non-maskable interrupt (asynchronous)
    .per_dout     (per_dout),          // Peripheral data output
    .per_dout     (per_dout),          // Peripheral data output
    .ram_dout     (ram_dout),          // RAM data output
    .pmem_dout    (pmem_dout),         // Program Memory data output
    .reset_n      (reset_n),           // Reset Pin (low active)
    .reset_n      (reset_n)            // Reset Pin (low active)
    .rom_dout     (rom_dout)           // ROM data output
 
);
);
 
 
//
//
// Digital I/O
// Digital I/O
//----------------------------------
//----------------------------------

powered by: WebSVN 2.1.0

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