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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [fpga/] [actel_m1a3pl_dev_kit/] [rtl/] [verilog/] [openmsp430/] [omsp_clock_module.v] - Diff between revs 80 and 85

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

Rev 80 Rev 85
Line 156... Line 156...
//============================================================================
//============================================================================
// 4) DATA OUTPUT GENERATION
// 4) DATA OUTPUT GENERATION
//============================================================================
//============================================================================
 
 
// Data output mux
// Data output mux
wire [15:0] bcsctl1_rd   = (bcsctl1  & {8{reg_rd[BCSCTL1/2]}})  << (8 & {4{BCSCTL1[0]}});
wire [15:0] bcsctl1_rd   = {8'h00, (bcsctl1  & {8{reg_rd[BCSCTL1/2]}})}  << (8 & {4{BCSCTL1[0]}});
wire [15:0] bcsctl2_rd   = (bcsctl2  & {8{reg_rd[BCSCTL2/2]}})  << (8 & {4{BCSCTL2[0]}});
wire [15:0] bcsctl2_rd   = {8'h00, (bcsctl2  & {8{reg_rd[BCSCTL2/2]}})}  << (8 & {4{BCSCTL2[0]}});
 
 
wire [15:0] per_dout =  bcsctl1_rd   |
wire [15:0] per_dout =  bcsctl1_rd   |
                        bcsctl2_rd;
                        bcsctl2_rd;
 
 
 
 
Line 188... Line 188...
 
 
 
 
// Generate ACLK
// Generate ACLK
//----------------------------
//----------------------------
 
 
 
reg       aclk_en;
reg [2:0] aclk_div;
reg [2:0] aclk_div;
 
 
wire      aclk_en = lfxt_clk_en & ((bcsctl1[`DIVAx]==2'b00) ?  1'b1          :
wire      aclk_en_nxt = lfxt_clk_en & ((bcsctl1[`DIVAx]==2'b00) ?  1'b1          :
                                   (bcsctl1[`DIVAx]==2'b01) ?  aclk_div[0]   :
                                   (bcsctl1[`DIVAx]==2'b01) ?  aclk_div[0]   :
                                   (bcsctl1[`DIVAx]==2'b10) ? &aclk_div[1:0] :
                                   (bcsctl1[`DIVAx]==2'b10) ? &aclk_div[1:0] :
                                                              &aclk_div[2:0]);
                                                              &aclk_div[2:0]);
 
 
always @ (posedge mclk or posedge puc)
always @ (posedge mclk or posedge puc)
 
  if (puc)  aclk_en <=  1'b0;
 
  else      aclk_en <=  aclk_en_nxt;
 
 
 
always @ (posedge mclk or posedge puc)
  if (puc)                                         aclk_div <=  3'h0;
  if (puc)                                         aclk_div <=  3'h0;
  else if ((bcsctl1[`DIVAx]!=2'b00) & lfxt_clk_en) aclk_div <=  aclk_div+3'h1;
  else if ((bcsctl1[`DIVAx]!=2'b00) & lfxt_clk_en) aclk_div <=  aclk_div+3'h1;
 
 
 
 
// Generate SMCLK
// Generate SMCLK
//----------------------------
//----------------------------
 
 
 
reg       smclk_en;
reg [2:0] smclk_div;
reg [2:0] smclk_div;
 
 
wire      smclk_in = ~scg1 & (bcsctl2[`SELS] ? lfxt_clk_en : 1'b1);
wire      smclk_in = ~scg1 & (bcsctl2[`SELS] ? lfxt_clk_en : 1'b1);
 
 
wire      smclk_en = smclk_in & ((bcsctl2[`DIVSx]==2'b00) ?  1'b1           :
wire      smclk_en_nxt = smclk_in & ((bcsctl2[`DIVSx]==2'b00) ?  1'b1           :
                                 (bcsctl2[`DIVSx]==2'b01) ?  smclk_div[0]   :
                                 (bcsctl2[`DIVSx]==2'b01) ?  smclk_div[0]   :
                                 (bcsctl2[`DIVSx]==2'b10) ? &smclk_div[1:0] :
                                 (bcsctl2[`DIVSx]==2'b10) ? &smclk_div[1:0] :
                                                            &smclk_div[2:0]);
                                                            &smclk_div[2:0]);
 
 
always @ (posedge mclk or posedge puc)
always @ (posedge mclk or posedge puc)
 
  if (puc)  smclk_en <=  1'b0;
 
  else      smclk_en <=  smclk_en_nxt;
 
 
 
always @ (posedge mclk or posedge puc)
  if (puc)                                      smclk_div <=  3'h0;
  if (puc)                                      smclk_div <=  3'h0;
  else if ((bcsctl2[`DIVSx]!=2'b00) & smclk_in) smclk_div <=  smclk_div+3'h1;
  else if ((bcsctl2[`DIVSx]!=2'b00) & smclk_in) smclk_div <=  smclk_div+3'h1;
 
 
 
 
//=============================================================================
//=============================================================================

powered by: WebSVN 2.1.0

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