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

Subversion Repositories sqmusic

[/] [sqmusic/] [trunk/] [sqm/] [sq_pg.v] - Diff between revs 12 and 16

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 12 Rev 16
 
/*
 
        SQmusic
 
 
 
  (c) Jose Tejada Gomez, 9th May 2013
 
  You can use this file following the GNU GENERAL PUBLIC LICENSE version 3
 
  Read the details of the license in:
 
  http://www.gnu.org/licenses/gpl.txt
 
 
 
  Send comments to: jose.tejada@ieee.org
 
 
 
*/
 
 
module sq_pg(
module sq_pg(
        input clk,
        input clk,
        input reset_n,
        input reset_n,
        input [10:0] fnumber,
        input [10:0] fnumber,
        input [2:0] block,
        input [2:0] block,
  input [3:0] multiple,
  input [3:0] multiple,
        output [9:0]phase );
        output [9:0]phase );
 
 
reg [19:0] count;
reg [19:0] count;
assign phase = count[19:10];
assign phase = count[19:10];
 
 
wire [19:0]fmult;
wire [19:0]fmult;
 
 
always @(*) begin
always @(*) begin
  case( multiple )
  case( multiple )
    4'b0: fmult = (phase << block) >> 1'b1;
    4'b0: fmult = (phase << block) >> 1'b1;
    default: fmult = (phase<<block)*multiple;
    default: fmult = (phase<<block)*multiple;
  endcase
  endcase
end
end
 
 
always @(posedge clk or negedge reset_n ) begin
always @(posedge clk or negedge reset_n ) begin
        if( !reset_n )
        if( !reset_n )
                count <= 20'b0;
                count <= 20'b0;
        else begin
        else begin
          count <= count + fmult;
          count <= count + fmult;
        end
        end
end
end
 
 
endmodule
endmodule
 
 
module sq_sin(
module sq_sin(
//  input clk,
//  input clk,
//  input reset_n,
//  input reset_n,
  input [9:0]phase,
  input [9:0]phase,
  output [19:0] val
  output [19:0] val
)
)
 
 
reg [19:0] sin_table[1023:0];
reg [19:0] sin_table[1023:0];
 
 
initial begin
initial begin
  $readmemh("sin_table.hex", sin_table);
  $readmemh("sin_table.hex", sin_table);
end
end
 
 
assign val = sin_table[phase];
assign val = sin_table[phase];
 
 
end
end
 
 

powered by: WebSVN 2.1.0

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