题解 | #信号发生器#

信号发生器

https://www.nowcoder.com/practice/39f6766689cc448e928a0921d1d1f858

module signal_generator(
	input clk,
	input rst_n,
	input [1:0] wave_choise,
	output reg [4:0]wave
	);

    parameter max_vavlue = 20, T1 = 20, min_value = 0;
    reg [4:0] cnt;
    reg flag;

    // 仅在方波模式工作的计数器
    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            cnt <= 0;
        end else begin
            // cnt <= wave_choise != 0 ? 0 : cnt == T1 - 1 ? 0 : cnt + 1;
            if (wave_choise == 0) cnt <= cnt == T1 - 1 ? 0 : cnt + 1;
            else cnt <= 0;
        end
    end

    // 仅在三角波模式工作的标志位
    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            flag <= 0;
        end else begin
            // flag <= wave_choise != 2 ? 0 : wave == min_value + 1 ? 1 : wave == max_vavlue - 1 ? 0 : flag;
            if (wave_choise == 2) begin
                if (wave <= min_value + 1) flag <= 1;
                else if (wave >= max_vavlue - 1) flag <= 0;
                else flag <= flag;
            end
        end
    end

    // 波形变化
    always  @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            wave <=0;
        end else begin
            case(wave_choise)
                0: begin
                    // wave <= cnt == T1/2 - 1 ? max_vavlue : cnt == T1 - 1 ? min_value : wave;
                    if (cnt == T1/2 - 1) wave <= max_vavlue;
                    else if (cnt == T1 - 1) wave <= min_value;
                    else wave <= wave;
                end
                1: wave <= wave == max_vavlue ? 0 : wave + 1;
                2: wave <= flag == 0 ? wave - 1 : wave + 1;
                default: wave <= 0;
            endcase
        end
    end
  
endmodule

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 18:35
简历上把1个月实习写成了3个月,会进行背调吗?
码农索隆:一个月有一个月的实习经历,三个月有三个月的实习经历
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
07-02 13:52
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务