名称:频率幅值可调波形发生器Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
频率幅值可调波形发生器
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
阅读全文
408