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

Subversion Repositories sqmusic

[/] [sqmusic/] [trunk/] [sqm/] [sq_pg.v] - Blame information for rev 12

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 12 gryzor
module sq_pg(
2
        input clk,
3
        input reset_n,
4
        input [10:0] fnumber,
5
        input [2:0] block,
6
  input [3:0] multiple,
7
        output [9:0]phase );
8
 
9
reg [19:0] count;
10
assign phase = count[19:10];
11
 
12
wire [19:0]fmult;
13
 
14
always @(*) begin
15
  case( multiple )
16
    4'b0: fmult = (phase << block) >> 1'b1;
17
    default: fmult = (phase<<block)*multiple;
18
  endcase
19
end
20
 
21
always @(posedge clk or negedge reset_n ) begin
22
        if( !reset_n )
23
                count <= 20'b0;
24
        else begin
25
          count <= count + fmult;
26
        end
27
end
28
 
29
endmodule
30
 
31
module sq_sin(
32
//  input clk,
33
//  input reset_n,
34
  input [9:0]phase,
35
  output [19:0] val
36
)
37
 
38
reg [19:0] sin_table[1023:0];
39
 
40
initial begin
41
  $readmemh("sin_table.hex", sin_table);
42
end
43
 
44
assign val = sin_table[phase];
45
 
46
end

powered by: WebSVN 2.1.0

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