rom正弦波发生器

Posted shevo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rom正弦波发生器相关的知识,希望对你有一定的参考价值。

地址发生器

module add_produce(en,clk,d_out);
    input clk,en;
    output[7:0] d_out;
    reg[7:0] = Q; 
    reg full;
    always@(posedge clk)
        if(en)        
            begin
                if(full != 1)
                    begin Q <= Q+1;full <= 0;end 
                else
                    begin Q <= 0;full <= 0; end
            end 
        else
            begin Q <= 0;full <= 0; end
            
        assign full = (Q == 2h7F);
        assign d_out = Q;        
endmodule            

rom加载mif文件

module lp_rom(clk,data,d_out);
    input[7:0] data;
    input clk;
    output[7:0] d_out;
    reg[7:0] Q,d_out;
    reg[7:0] mem[127:0] /*synthesis rom_init_file="ROM_78.mif" */;
    always@(data)
        Q <= mem[data];
    always@(posedge clk)
        d_out = Q;
endmodule    

整合成正弦波发生器

module sin_gnt(en,clk,data,d_out);
    input en,clk;
    input[7:0] data;
    output[7:0] d_out;
    wire[7:0] address;
    add_produce ad(.en(en),.clk(clk),.d_out(address));
    lp_rom lr(.clk(clk),.data(address),.d_out(d_out));
endmodule    

 

以上是关于rom正弦波发生器的主要内容,如果未能解决你的问题,请参考以下文章

FPGA综合实验 02 - | 正弦信号发生器设计

51单片机+PCF8591的多波形发生器仿真程序(正弦波 三角波等可调)

方波,正弦波,三角波信号是如何产生的

急!!!用运算放大器设计一个方波、正弦波、三角波的信号发生器

(DDS)正弦波形发生器——幅值频率相位可调

用FPGA产生正弦波