• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

频率幅值可调波形发生器Verilog代码Quartus仿真

07/03 09:43
408
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240116103010H7.doc

共1个文件

名称:频率幅值可调波形发生器Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

频率幅值可调波形发生器

1、输出方波;三角波;正弦波;阶梯波;

2、可以控制波形频率、幅值;

3、可以选择输出哪种波形;

4、编写testbench,使用modelsim仿真。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1.工程文件

2.程序文件

3.程序编译

4.Testbench

5.Modelsim仿真

整体仿真,不同波形,不同频率,不同幅值

1.幅度变化仿真,以方波为例,幅值根据amplitude_data变化而变化

2.波形切换仿真,正弦波变为锯齿波

3.频率(周期)改变仿真,频率(周期)根据frequency_data变化而变化,下图frequency_data=20周期为13311ns左右

下图frequency_data=40周期为26175ns左右,频率变化了

整体仿真图

部分代码展示:

`timescale?1ns?/?1ps
//////////////////////////////////////////////////////////////////////////////////
//?Company:?
//?Engineer:?
//?
//?Create?Date:?2015/12/22?14:45:39
//?Design?Name:?
//?Module?Name:?wave_generation
//?Project?Name:?
//?Target?Devices:?
//?Tool?Versions:?
//?Description:?
//?
//?Dependencies:?
//?
//?Revision:
//?Revision?0.01?-?File?Created
//?Additional?Comments:
//?
//////////////////////////////////////////////////////////////////////////////////
module?wave_generation(
????input?sys_clk,
????input?sys_rst,//高电平复位
????
????input?[1:0]?wave_select,//00矩形波;01-三角波;10-正弦波;11-锯齿波
????input?[7:0]?frequency_data,//频率控制信号(该控制字越大频率越低)
?input?[7:0]?amplitude_data,//幅度控制
????output?reg?[15:0]?wave_data//输出波形
????);
????wire?clk;
?wire?[7:0]?triangular_wave;
????wire?[7:0]?sawtooth_wave;
?wire?[7:0]?square_wave;
?wire?[7:0]?sin_wave;
//波形产生模块?
carrier_wave?carrier_wave(
????.?clk(clk),
????.?rst(sys_rst),
?.?triangular_wave(triangular_wave),//三角波
????.?sawtooth_wave(sawtooth_wave),//阶梯波
?.?square_wave(square_wave),//矩形波
?.?sin_wave(sin_wave)//正弦波
????);
reg?[7:0]?clk_cnt=8'd0;
always@(posedge?sys_clk)
if(sys_rst)
clk_cnt<=8'd0;
else
if(clk_cnt==frequency_data)//频率控制frequency_data取值0~255,输出频率最大为50M/32Hz=1562500Hz,最低50M/256/32Hz=6103Hz
clk_cnt<=8'd0;
else
clk_cnt<=clk_cnt+8'd1;
assign?clk=(clk_cnt==8'd0)?1'b1:1'b0;//通过控制clk来控制输出频率
always@(posedge?sys_clk)//00矩形波;01-三角波;10-正弦波;11-锯齿波
case(wave_select)//amplitude_data幅度控制
2'b00:wave_data<=amplitude_data*square_wave;
2'b01:wave_data<=amplitude_data*triangular_wave;
2'b10:wave_data<=amplitude_data*sin_wave;
2'b11:wave_data<=amplitude_data*sawtooth_wave;
default:;
endcase
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=576

  • 2-240116103010H7.doc
    下载

相关推荐