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

Subversion Repositories eco32

[/] [eco32/] [tags/] [eco32-0.25/] [fpga/] [src/] [fms/] [fms.v] - Blame information for rev 320

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

Line No. Rev Author Line
1 218 hellwig
//
2
// fms.v -- FM synthesizer
3
//
4 231 hellwig
// NOTE: This is a fake module for now.
5
//       It allows writing directly to the DAC.
6 218 hellwig
//
7
 
8
 
9
module fms(clk, reset,
10
           en, wr, addr,
11
           data_in, data_out,
12
           wt,
13
           next, sample_l, sample_r);
14
    // internal interface
15
    input clk;
16
    input reset;
17
    input en;
18
    input wr;
19
    input [11:2] addr;
20
    input [31:0] data_in;
21
    output [31:0] data_out;
22
    output wt;
23
    // DAC controller interface
24
    input next;
25
    output [15:0] sample_l;
26
    output [15:0] sample_r;
27
 
28
  reg [31:0] value;
29 231 hellwig
  reg value_needed;
30 218 hellwig
 
31
  always @(posedge clk) begin
32
    if (reset) begin
33
      value[31:0] <= 32'h0;
34 231 hellwig
      value_needed <= 0;
35 218 hellwig
    end else begin
36
      if (en & wr & ~|addr[11:2]) begin
37
        value[31:0] <= data_in[31:0];
38 231 hellwig
        value_needed <= 0;
39
      end else begin
40
        if (next) begin
41
          value_needed <= 1;
42
        end
43 218 hellwig
      end
44
    end
45
  end
46
 
47 231 hellwig
  assign data_out[31:0] = { 31'h0, value_needed };
48 218 hellwig
  assign wt = 0;
49
 
50
  assign sample_l[15:0] = value[31:16];
51
  assign sample_r[15:0] = value[15:0];
52
 
53
endmodule

powered by: WebSVN 2.1.0

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