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

Subversion Repositories openmsp430

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

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

Rev 151 Rev 154
Line 29... Line 29...
//
//
// *Author(s):
// *Author(s):
//              - Olivier Girard,    olgirard@gmail.com
//              - Olivier Girard,    olgirard@gmail.com
//
//
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// $Rev: 151 $
// $Rev: 154 $
// $LastChangedBy: olivier.girard $
// $LastChangedBy: olivier.girard $
// $LastChangedDate: 2012-07-23 00:24:11 +0200 (Mon, 23 Jul 2012) $
// $LastChangedDate: 2012-10-15 22:44:20 +0200 (Mon, 15 Oct 2012) $
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
`include "timescale.v"
`include "timescale.v"
`ifdef OMSP_NO_INCLUDE
`ifdef OMSP_NO_INCLUDE
`else
`else
`include "openMSP430_defines.v"
`include "openMSP430_defines.v"
Line 153... Line 153...
 
 
// Scan (ASIC version only)
// Scan (ASIC version only)
reg                scan_enable;
reg                scan_enable;
reg                scan_mode;
reg                scan_mode;
 
 
// Debug interface
// Debug interface: UART
reg                dbg_en;
reg                dbg_en;
wire               dbg_freeze;
wire               dbg_freeze;
wire               dbg_uart_txd;
wire               dbg_uart_txd;
wire               dbg_uart_rxd;
wire               dbg_uart_rxd;
reg                dbg_uart_rxd_sel;
reg                dbg_uart_rxd_sel;
Line 166... Line 166...
reg                dbg_uart_rxd_meta;
reg                dbg_uart_rxd_meta;
reg         [15:0] dbg_uart_buf;
reg         [15:0] dbg_uart_buf;
reg                dbg_uart_rx_busy;
reg                dbg_uart_rx_busy;
reg                dbg_uart_tx_busy;
reg                dbg_uart_tx_busy;
 
 
 
// Debug interface: I2C
 
wire               dbg_scl;
 
wire               dbg_sda;
 
wire               dbg_scl_slave;
 
wire               dbg_scl_master;
 
reg                dbg_scl_master_sel;
 
reg                dbg_scl_master_dly;
 
reg                dbg_scl_master_pre;
 
reg                dbg_scl_master_meta;
 
wire               dbg_sda_slave_out;
 
wire               dbg_sda_slave_in;
 
wire               dbg_sda_master_out;
 
reg                dbg_sda_master_out_sel;
 
reg                dbg_sda_master_out_dly;
 
reg                dbg_sda_master_out_pre;
 
reg                dbg_sda_master_out_meta;
 
wire               dbg_sda_master_in;
 
reg         [15:0] dbg_i2c_buf;
 
reg     [8*32-1:0] dbg_i2c_string;
 
 
// Core testbench debuging signals
// Core testbench debuging signals
wire    [8*32-1:0] i_state;
wire    [8*32-1:0] i_state;
wire    [8*32-1:0] e_state;
wire    [8*32-1:0] e_state;
wire        [31:0] inst_cycle;
wire        [31:0] inst_cycle;
wire    [8*32-1:0] inst_full;
wire    [8*32-1:0] inst_full;
Line 189... Line 209...
// CPU & Memory registers
// CPU & Memory registers
`include "registers.v"
`include "registers.v"
 
 
// Debug interface tasks
// Debug interface tasks
`include "dbg_uart_tasks.v"
`include "dbg_uart_tasks.v"
 
`include "dbg_i2c_tasks.v"
 
 
// Simple uart tasks
// Simple uart tasks
//`include "uart_tasks.v"
//`include "uart_tasks.v"
 
 
// Verilog stimulus
// Verilog stimulus
Line 259... Line 280...
     dbg_uart_rxd_pre = 1'b1;
     dbg_uart_rxd_pre = 1'b1;
     dbg_uart_rxd_meta= 1'b0;
     dbg_uart_rxd_meta= 1'b0;
     dbg_uart_buf     = 16'h0000;
     dbg_uart_buf     = 16'h0000;
     dbg_uart_rx_busy = 1'b0;
     dbg_uart_rx_busy = 1'b0;
     dbg_uart_tx_busy = 1'b0;
     dbg_uart_tx_busy = 1'b0;
 
     dbg_scl_master_sel      = 1'b0;
 
     dbg_scl_master_dly      = 1'b1;
 
     dbg_scl_master_pre      = 1'b1;
 
     dbg_scl_master_meta     = 1'b0;
 
     dbg_sda_master_out_sel  = 1'b0;
 
     dbg_sda_master_out_dly  = 1'b1;
 
     dbg_sda_master_out_pre  = 1'b1;
 
     dbg_sda_master_out_meta = 1'b0;
 
     dbg_i2c_string          = "";
     p1_din           = 8'h00;
     p1_din           = 8'h00;
     p2_din           = 8'h00;
     p2_din           = 8'h00;
     p3_din           = 8'h00;
     p3_din           = 8'h00;
     p4_din           = 8'h00;
     p4_din           = 8'h00;
     p5_din           = 8'h00;
     p5_din           = 8'h00;
Line 325... Line 355...
 
 
// OUTPUTs
// OUTPUTs
    .aclk         (aclk),              // ASIC ONLY: ACLK
    .aclk         (aclk),              // ASIC ONLY: ACLK
    .aclk_en      (aclk_en),           // FPGA ONLY: ACLK enable
    .aclk_en      (aclk_en),           // FPGA ONLY: ACLK enable
    .dbg_freeze   (dbg_freeze),        // Freeze peripherals
    .dbg_freeze   (dbg_freeze),        // Freeze peripherals
 
    .dbg_i2c_sda_out   (dbg_sda_slave_out), // Debug interface: I2C SDA OUT
    .dbg_uart_txd (dbg_uart_txd),      // Debug interface: UART TXD
    .dbg_uart_txd (dbg_uart_txd),      // Debug interface: UART TXD
    .dco_enable   (dco_enable),        // ASIC ONLY: Fast oscillator enable
    .dco_enable   (dco_enable),        // ASIC ONLY: Fast oscillator enable
    .dco_wkup     (dco_wkup),          // ASIC ONLY: Fast oscillator wake-up (asynchronous)
    .dco_wkup     (dco_wkup),          // ASIC ONLY: Fast oscillator wake-up (asynchronous)
    .dmem_addr    (dmem_addr),         // Data Memory address
    .dmem_addr    (dmem_addr),         // Data Memory address
    .dmem_cen     (dmem_cen),          // Data Memory chip enable (low active)
    .dmem_cen     (dmem_cen),          // Data Memory chip enable (low active)
Line 351... Line 382...
    .smclk_en     (smclk_en),          // FPGA ONLY: SMCLK enable
    .smclk_en     (smclk_en),          // FPGA ONLY: SMCLK enable
 
 
// INPUTs
// INPUTs
    .cpu_en       (cpu_en),            // Enable CPU code execution (asynchronous)
    .cpu_en       (cpu_en),            // Enable CPU code execution (asynchronous)
    .dbg_en       (dbg_en),            // Debug interface enable (asynchronous)
    .dbg_en       (dbg_en),            // Debug interface enable (asynchronous)
 
    .dbg_i2c_addr      (I2C_ADDR),          // Debug interface: I2C Address
 
    .dbg_i2c_broadcast (I2C_BROADCAST),     // Debug interface: I2C Broadcast Address (for multicore systems)
 
    .dbg_i2c_scl       (dbg_scl_slave),     // Debug interface: I2C SCL
 
    .dbg_i2c_sda_in    (dbg_sda_slave_in),  // Debug interface: I2C SDA IN
    .dbg_uart_rxd (dbg_uart_rxd),      // Debug interface: UART RXD (asynchronous)
    .dbg_uart_rxd (dbg_uart_rxd),      // Debug interface: UART RXD (asynchronous)
    .dco_clk      (dco_clk),           // Fast oscillator (fast clock)
    .dco_clk      (dco_clk),           // Fast oscillator (fast clock)
    .dmem_dout    (dmem_dout),         // Data Memory data output
    .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)
Line 573... Line 608...
                         1'b0,           // Vector  1  (0xFFE2)
                         1'b0,           // Vector  1  (0xFFE2)
                         1'b0};          // Vector  0  (0xFFE0)
                         1'b0};          // Vector  0  (0xFFE0)
 
 
 
 
//
//
 
// I2C serial debug interface
 
//----------------------------------
 
 
 
// I2C Bus
 
//.........................
 
pullup dbg_scl_inst (dbg_scl);
 
pullup dbg_sda_inst (dbg_sda);
 
 
 
// I2C Slave (openMSP430)
 
//.........................
 
io_cell scl_slave_inst (
 
  .pad         (dbg_scl),             // I/O pad
 
  .data_in     (dbg_scl_slave),       // Input
 
  .data_out_en (1'b0),                // Output enable
 
  .data_out    (1'b0)                 // Output
 
);
 
 
 
io_cell sda_slave_inst (
 
  .pad         (dbg_sda),             // I/O pad
 
  .data_in     (dbg_sda_slave_in),    // Input
 
  .data_out_en (!dbg_sda_slave_out),  // Output enable
 
  .data_out    (1'b0)                 // Output
 
);
 
 
 
// I2C Master (Debugger)
 
//.........................
 
io_cell scl_master_inst (
 
  .pad         (dbg_scl),             // I/O pad
 
  .data_in     (),                    // Input
 
  .data_out_en (!dbg_scl_master),     // Output enable
 
  .data_out    (1'b0)                 // Output
 
);
 
 
 
io_cell sda_master_inst (
 
  .pad         (dbg_sda),             // I/O pad
 
  .data_in     (dbg_sda_master_in),   // Input
 
  .data_out_en (!dbg_sda_master_out), // Output enable
 
  .data_out    (1'b0)                 // Output
 
);
 
 
 
 
 
//
// Debug utility signals
// Debug utility signals
//----------------------------------------
//----------------------------------------
msp_debug msp_debug_0 (
msp_debug msp_debug_0 (
 
 
// OUTPUTs
// OUTPUTs

powered by: WebSVN 2.1.0

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