You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Basys3播放《生日快乐》时输出仿真值为X而非1的问题求助

Basys3播放生日歌仿真异常问题

我在使用Basys3开发板播放《生日快乐》乐曲时,仿真发现输出值为X而非预期的1。涉及clk_440、sound、sound_tb三个信号的输出,观察到clk_440存在该异常,但r_clk_440正常;单独对时钟模块(a_clk)仿真时结果正常,因此推测问题出在main模块,但尚未定位到具体原因。

以下是仿真所用的各模块及测试代码:

顶层模块(main)

module main(
    input clk,
    output sound
    );
    
    parameter BEAT=400_000;
    reg [4:0]note_num=0;
    reg en_a=0;
    reg [25:0]timer=0;
    reg r_sound=0;
    
    assign sound=r_sound;
    
    a_clk a_sound(.clk(clk), .en(en_a), .clk_440(sound));
    
    always@(posedge clk) begin
        case (note_num)
            5'd0: begin
                if (timer==BEAT/2) begin
                    timer<=0;
                    en_a<=0;
                    note_num<=5'd1; end
                else begin
                    en_a<=1;
                    timer<=timer+1;
                    note_num<=5'd0; end
            end
   endcase
end
endmodule

a_clk模块

module a_clk(
    input clk,
    input en,
    output clk_440
    );
    
    reg [16:0]counter=0;
    reg r_clk_440=0;
    
    assign clk_440=r_clk_440;
        
    always@(posedge clk) begin
        if (en) begin 
            if (counter==113_636) begin
                counter<=0;
                r_clk_440<=~r_clk_440; end
            else
                counter<= counter +1;
        end
        else
            counter<=0;
    end
    
endmodule

Image1所用测试平台(TestBench)

module simulation(

    );
    reg clk_tb=0;
    wire tb_sound;
    
    main main_tb(.clk(clk_tb), .sound(sound_tb));
    
    always #5 clk_tb<=~clk_tb;
    
endmodule

Image2所用测试平台(TestBench)

module simulation(

    );
    reg clk_tb=0, en_tb=0;
    wire clk_440_tb;
    
    a_clk a_clk_tb(clk_tb, en_tb, clk_440_tb);
    
    always #5 clk_tb<=~clk_tb;
    
    initial begin
        #20;
        en_tb<=1;
    end
endmodule

内容的提问来源于stack exchange,提问作者Ilan Mermelstein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:00:09