题目描述:
请编写一个信号发生器模块,根据波形选择信号wave_choise发出相应的波形:wave_choice=0时,发出方波信号;wave_choice=1时,发出锯齿波信号;wave_choice=2时,发出三角波信号。
模块的接口信号图如下
模块的时序图如下:
请使用Verilog HDL实现以上功能,并编写testbench验证模块的功能
输入描述:
clk:系统时钟信号
rst_n:异步复位信号,低电平有效
wave_choise:2比特位宽的信号,根据该信号的取值不同,输出不同的波形信号
输出描述:
wave:5比特位宽的信号,根据wave_choise的值,输出不同波形的信号
答:
1.方波周期必须是20,占空比50%。用计数器实现时,幅值在计数为0-9时取0,10-19时取20。如果计数1-10时取0,11-19-0时取20,会出错,因为第一个周期持续时间不对。
2.锯齿波周期必须21,最大幅度20。切换波形模式时,直接递增wave(不用从头开始增加wave),直到幅度为20,再从头开始。
3.三角波周期必须40,最大幅度20。切换波形模式时,wave默认递减,除非进入三角波模式时wave=0,
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
|
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/271399.html