Verilog 每日一题 (VL5 信号发生器)

该博客介绍了如何使用Verilog编写一个信号发生器模块,根据wave_choice参数产生方波、锯齿波或三角波。作者提到牛客网的Verilog题目设置有些模糊,需要自行推断信号的幅值和周期。文中详细解释了解题思路,特别强调了在编写判断条件和使用阻塞赋值与非阻塞赋值时的注意事项,以避免信号延迟问题。
摘要由CSDN通过智能技术生成

题目描述:

请编写一个信号发生器模块,根据波形选择信号wave_choise发出相应的波形:wave_choice=0时,发出方波信号;wave_choice=1时,发出锯齿波信号;wave_choice=2时,发出三角波信号。



有一说一,牛客网现在的verilog的题出的就挺离谱,不看答案题目都不知道啥意思.

解题思路:

这一题首先需要确定如何得到三种信号,以及最基本的三种信号的幅值、周期,题目里全都没有。从答案可以看出,方波周期为20个clk,且占空比为0.5,锯齿波周期为21个clk,三角波周期为40个clk。

具体详解如下:

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

     //wave_choice 为0时输出方波,先写出方波信号发生器
    //以20个clk为方波周期(题目没有,看答案才知道),则需要一个计数器num

    reg [4:0] num;
    always @(posedge clk or negedge rst_n) begin
        if(!rst_n) 
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值