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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [core/] [sim/] [rtl_sim/] [src/] [op_modes_asic.v] - Diff between revs 180 and 200

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

Rev 180 Rev 200
Line 63... Line 63...
always @(posedge mclk or posedge puc_rst)
always @(posedge mclk or posedge puc_rst)
  if (puc_rst) wkup2_sync <= 2'b00;
  if (puc_rst) wkup2_sync <= 2'b00;
  else         wkup2_sync <= {wkup2_sync[0], wkup[2]};
  else         wkup2_sync <= {wkup2_sync[0], wkup[2]};
 
 
always @(wkup2_sync)
always @(wkup2_sync)
  irq[2] = wkup2_sync[1];
  irq[`IRQ_NR-14] = wkup2_sync[1]; // IRQ-2
 
 
// Wakeup synchronizer to generate IRQ
// Wakeup synchronizer to generate IRQ
reg [1:0] wkup3_sync;
reg [1:0] wkup3_sync;
always @(posedge mclk or posedge puc_rst)
always @(posedge mclk or posedge puc_rst)
  if (puc_rst) wkup3_sync <= 2'b00;
  if (puc_rst) wkup3_sync <= 2'b00;
  else         wkup3_sync <= {wkup3_sync[0], wkup[3]};
  else         wkup3_sync <= {wkup3_sync[0], wkup[3]};
 
 
always @(wkup3_sync)
always @(wkup3_sync)
  irq[3] = wkup3_sync[1];
  irq[`IRQ_NR-13] = wkup3_sync[1]; // IRQ-3
 
 
 
 
initial
initial
   begin
   begin
      $display(" ===============================================");
      $display(" ===============================================");
      $display("|                 START SIMULATION              |");
      $display("|                 START SIMULATION              |");
      $display(" ===============================================");
      $display(" ===============================================");
      repeat(5) @(posedge mclk);
      repeat(5) @(posedge mclk);
      stimulus_done = 0;
      stimulus_done = 0;
 
 
      irq[2]  = 0;
      irq[`IRQ_NR-14]  = 0; // IRQ-2
      wkup[2] = 0;
      wkup[2] = 0;
 
 
      irq[3]  = 0;
      irq[`IRQ_NR-13]  = 0; // IRQ-3
      wkup[3] = 0;
      wkup[3] = 0;
 
 
 
 
`ifdef ASIC_CLOCKING
`ifdef ASIC_CLOCKING
 
 
Line 116... Line 116...
      smclk_cnt = 0;
      smclk_cnt = 0;
 
 
 
 
      @(r15==16'h1003);                //---------- PORT2 IRQ TRIAL (EXITING POWER MODE) -------------//
      @(r15==16'h1003);                //---------- PORT2 IRQ TRIAL (EXITING POWER MODE) -------------//
      wkup[3] = 1'b1;
      wkup[3] = 1'b1;
      @(posedge irq_acc[3]);
      @(posedge irq_acc[`IRQ_NR-13]); // IRQ_ACC-3
      aclk_cnt = 0;
      aclk_cnt = 0;
      repeat (10) @(posedge mclk);
      repeat (10) @(posedge mclk);
      smclk_cnt = 0;
      smclk_cnt = 0;
      repeat (50) @(posedge mclk);
      repeat (50) @(posedge mclk);
      if (smclk_cnt !== 50)  tb_error("====== SCG1 TEST 3: SMCLK IS NOT RUNNING DURING IRQ =====");
      if (smclk_cnt !== 50)  tb_error("====== SCG1 TEST 3: SMCLK IS NOT RUNNING DURING IRQ =====");
Line 147... Line 147...
      smclk_cnt = 0;
      smclk_cnt = 0;
 
 
 
 
      @(r15==16'h1006);                //---------- PORT1 IRQ TRIAL (STAYING IN POWER MODE) -------------//
      @(r15==16'h1006);                //---------- PORT1 IRQ TRIAL (STAYING IN POWER MODE) -------------//
      wkup[2] = 1'b1;
      wkup[2] = 1'b1;
      @(posedge irq_acc[2]);
      @(posedge irq_acc[`IRQ_NR-14]); // IRQ_ACC-2
      repeat (10) @(posedge mclk);
      repeat (10) @(posedge mclk);
      smclk_cnt = 0;
      smclk_cnt = 0;
      repeat (50) @(posedge mclk);
      repeat (50) @(posedge mclk);
      if (smclk_cnt !== 50)  tb_error("====== SCG1 TEST 6: SMCLK IS NOT RUNNING DURING IRQ =====");
      if (smclk_cnt !== 50)  tb_error("====== SCG1 TEST 6: SMCLK IS NOT RUNNING DURING IRQ =====");
      smclk_cnt = 0;
      smclk_cnt = 0;
Line 204... Line 204...
      aclk_cnt = 0;
      aclk_cnt = 0;
 
 
 
 
      @(r15==16'h2003);                //---------- PORT2 IRQ TRIAL (EXITING POWER MODE) -------------//
      @(r15==16'h2003);                //---------- PORT2 IRQ TRIAL (EXITING POWER MODE) -------------//
      wkup[3] = 1'b1;
      wkup[3] = 1'b1;
      @(posedge irq_acc[3]);
      @(posedge irq_acc[`IRQ_NR-13]); // IRQ_ACC-3
      repeat (100) @(posedge mclk);
      repeat (100) @(posedge mclk);
      aclk_cnt = 0;
      aclk_cnt = 0;
      repeat (100) @(posedge mclk);
      repeat (100) @(posedge mclk);
  `ifdef LFXT_DOMAIN
  `ifdef LFXT_DOMAIN
      if (aclk_cnt !== 3)   tb_error("====== OSCOFF TEST 3: ACLK IS NOT RUNNING DURING IRQ =====");
      if (aclk_cnt !== 3)   tb_error("====== OSCOFF TEST 3: ACLK IS NOT RUNNING DURING IRQ =====");
Line 243... Line 243...
      aclk_cnt = 0;
      aclk_cnt = 0;
 
 
 
 
      @(r15==16'h2006);                //---------- PORT1 IRQ TRIAL (STAYING IN POWER MODE) -------------//
      @(r15==16'h2006);                //---------- PORT1 IRQ TRIAL (STAYING IN POWER MODE) -------------//
      wkup[2] = 1'b1;
      wkup[2] = 1'b1;
      @(posedge irq_acc[2]);
      @(posedge irq_acc[`IRQ_NR-14]); // IRQ_ACC-2
      repeat (100) @(posedge mclk);
      repeat (100) @(posedge mclk);
      aclk_cnt = 0;
      aclk_cnt = 0;
      repeat (100) @(posedge mclk);
      repeat (100) @(posedge mclk);
  `ifdef LFXT_DOMAIN
  `ifdef LFXT_DOMAIN
      if (aclk_cnt !== 3)   tb_error("====== OSCOFF TEST 6: ACLK IS NOT RUNNING DURING IRQ =====");
      if (aclk_cnt !== 3)   tb_error("====== OSCOFF TEST 6: ACLK IS NOT RUNNING DURING IRQ =====");
Line 297... Line 297...
      repeat (80) @(negedge dco_clk);
      repeat (80) @(negedge dco_clk);
      if (mclk_cnt !== 0)  tb_error("====== CPUOFF TEST 2: CPU IS NOT STOPPED =====");
      if (mclk_cnt !== 0)  tb_error("====== CPUOFF TEST 2: CPU IS NOT STOPPED =====");
 
 
      @(posedge dco_clk);                //---------- PORT1 IRQ TRIAL (STAYING IN POWER MODE) -------------//
      @(posedge dco_clk);                //---------- PORT1 IRQ TRIAL (STAYING IN POWER MODE) -------------//
      wkup[2] = 1'b1;
      wkup[2] = 1'b1;
      @(posedge irq_acc[2]);
      @(posedge irq_acc[`IRQ_NR-14]); // IRQ_ACC-2
      repeat(10)  @(negedge dco_clk);
      repeat(10)  @(negedge dco_clk);
      mclk_cnt  = 0;
      mclk_cnt  = 0;
      repeat (80) @(negedge dco_clk);
      repeat (80) @(negedge dco_clk);
      if (mclk_cnt !== 80) tb_error("====== CPUOFF TEST 3: CPU IS NOT RUNNING DURING IRQ (PORT 1) =====");
      if (mclk_cnt !== 80) tb_error("====== CPUOFF TEST 3: CPU IS NOT RUNNING DURING IRQ (PORT 1) =====");
      mclk_cnt = 0;
      mclk_cnt = 0;
Line 315... Line 315...
      if (mclk_cnt  !== 0) tb_error("====== CPUOFF TEST 4: CPU IS NOT STOPPED AFTER IRQ =====");
      if (mclk_cnt  !== 0) tb_error("====== CPUOFF TEST 4: CPU IS NOT STOPPED AFTER IRQ =====");
 
 
 
 
                                         //---------- PORT2 IRQ TRIAL (EXITING POWER MODE) -------------//
                                         //---------- PORT2 IRQ TRIAL (EXITING POWER MODE) -------------//
      wkup[3] = 1'b1;
      wkup[3] = 1'b1;
      @(posedge irq_acc[3]);
      @(posedge irq_acc[`IRQ_NR-13]); // IRQ_ACC-3
      repeat (10) @(posedge dco_clk);
      repeat (10) @(posedge dco_clk);
      mclk_cnt = 0;
      mclk_cnt = 0;
      repeat (80) @(posedge dco_clk);
      repeat (80) @(posedge dco_clk);
      if (mclk_cnt !== 80)  tb_error("====== CPUOFF TEST 5: CPU IS NOT RUNNING DURING IRQ =====");
      if (mclk_cnt !== 80)  tb_error("====== CPUOFF TEST 5: CPU IS NOT RUNNING DURING IRQ =====");
      mclk_cnt = 0;
      mclk_cnt = 0;
Line 359... Line 359...
      if (dco_clk_cnt !== 0)  tb_error("====== SCG0 TEST 2: DCO IS NOT STOPPED =====");
      if (dco_clk_cnt !== 0)  tb_error("====== SCG0 TEST 2: DCO IS NOT STOPPED =====");
 
 
 
 
      #(1*50);                           //---------- PORT1 IRQ TRIAL (STAYING IN POWER MODE) -------------//
      #(1*50);                           //---------- PORT1 IRQ TRIAL (STAYING IN POWER MODE) -------------//
      wkup[2] = 1'b1;
      wkup[2] = 1'b1;
      @(posedge irq_acc[2]);
      @(posedge irq_acc[`IRQ_NR-14]); // IRQ_ACC-2
      #(10*50);
      #(10*50);
      dco_clk_cnt  = 0;
      dco_clk_cnt  = 0;
      #(80*50);
      #(80*50);
      if (dco_clk_cnt !== 80) tb_error("====== SCG0 TEST 3: DCO IS NOT RUNNING DURING IRQ (PORT 1) =====");
      if (dco_clk_cnt !== 80) tb_error("====== SCG0 TEST 3: DCO IS NOT RUNNING DURING IRQ (PORT 1) =====");
      dco_clk_cnt = 0;
      dco_clk_cnt = 0;
Line 376... Line 376...
      if (dco_clk_cnt  !== 0) tb_error("====== SCG0 TEST 4: DCO IS NOT STOPPED AFTER IRQ =====");
      if (dco_clk_cnt  !== 0) tb_error("====== SCG0 TEST 4: DCO IS NOT STOPPED AFTER IRQ =====");
 
 
 
 
                                         //---------- PORT2 IRQ TRIAL (EXITING POWER MODE) -------------//
                                         //---------- PORT2 IRQ TRIAL (EXITING POWER MODE) -------------//
      wkup[3] = 1'b1;
      wkup[3] = 1'b1;
      @(posedge irq_acc[3]);
      @(posedge irq_acc[`IRQ_NR-13]); // IRQ_ACC-3
      #(10*50);
      #(10*50);
      dco_clk_cnt = 0;
      dco_clk_cnt = 0;
      #(80*50);
      #(80*50);
      if (dco_clk_cnt !== 80)  tb_error("====== SCG0 TEST 5: DCO IS NOT RUNNING DURING IRQ =====");
      if (dco_clk_cnt !== 80)  tb_error("====== SCG0 TEST 5: DCO IS NOT RUNNING DURING IRQ =====");
      dco_clk_cnt = 0;
      dco_clk_cnt = 0;

powered by: WebSVN 2.1.0

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