基于FPGA的信號發生器,四種波形可調,頻率相位可調,(1-999999hz)(幅度+-5V)正弦 三角 方波 鋸齒這里使用了某寶的高速的DA模塊。所以是在數據發送的時候是并行發送的,至于輸出-+5是模塊自身集成了放大器和減法器使得移動到-+5
51hei.png (7.83 KB, 下載次數: 50)
下載附件
2020-5-30 15:29 上傳
源程序如下:
- `timescale 1ns / 1ps
- //////////////////////////////////////////////////////////////////////////////////
- // Company:
- // Engineer:
- //
- // Create Date: 15:17:29 05/31/2019
- // Design Name:
- // Module Name: FV
- // Project Name:
- // Target Devices:
- // Tool versions:
- // Description:
- //
- // Dependencies:
- //
- // Revision:
- // Revision 0.01 - File Created
- // Additional Comments:
- //
- //////////////////////////////////////////////////////////////////////////////////
- module FV(
- Clk,
- Rst_n,
- k6,
- k5,
- k4,
- k3,
- FV_word
- );
- input Clk;
- input Rst_n;
- input k6;
- input k5;
- input k4;
- input k3;
- output [7:0]FV_word;
-
- reg[3:0]ge,shi;
- /*----------按鍵模塊實例化-------*/
- //k5 個位 +
- wire key_flag, key_state;
- key_filter key_filter0(
- .Clk(Clk),
- .Rst_n(Rst_n),
- .key_in(k5),
- .key_flag(key_flag),
- .key_state(key_state)
- );
- //k6 個位 -
- wire key_flag1, key_state1;
- key_filter key_filter1(
- .Clk(Clk),
- .Rst_n(Rst_n),
- .key_in(k6),
- .key_flag(key_flag1),
- .key_state(key_state1)
- );
- always@(posedge Clk or negedge Rst_n)begin
- if(!Rst_n)
- ge <= 4'd1;
- else if(key_flag && (!key_state))begin
- if((shi!=0))begin
- if(ge==4'd10)begin
- ge <=ge;
- end
- else begin
- ge <= ge + 1'b1;
- end
- end
- else if(ge==4'd10)begin
- ge <=ge;
- end
- else begin
- ge <= ge + 1'b1;
- end
- end
- else if(key_flag1 && (!key_state1))begin
- if((shi!=0))begin
- if(ge==4'd1)begin
- ge <= ge;
- end
- else begin
- ge <= ge - 1'b1;
- end
- end
- else if(ge==4'd1)begin
- ge <= ge;
- end
- else begin
- ge <= ge - 1'b1;
- end
- end
- else
- ge <= ge;
- end
-
- //k4
- wire key_flag0, key_state0;
- key_filter key_filter2(
- .Clk(Clk),
- .Rst_n(Rst_n),
- .key_in(k3),
- .key_flag(key_flag0),
- .key_state(key_state0)
- );
- wire key_flag2, key_state2;
- key_filter key_filter3(
- .Clk(Clk),
- .Rst_n(Rst_n),
- .key_in(k4),
- .key_flag(key_flag2),
- .key_state(key_state2)
- );
-
- always@(posedge Clk or negedge Rst_n)begin
- if(!Rst_n)
- shi <= 4'd0;
- else if(key_flag0 && (!key_state0))begin
- if(shi==4'd9)begin
- shi <=shi;
- end
- else begin
- shi <= shi + 1'b1;
- end
- end
- else if(key_flag2 && (!key_state2))begin
- if(shi==4'd0)begin
- shi <=shi;
- end
- else begin
- shi <= shi - 1'b1;
- end
- end
- else
- shi <= shi;
- end
- /*----------幅度控制-------*/
- assign FV_word=ge*5+shi*21'd10;
- endmodule
復制代碼
所有資料51hei提供下載:
FPGADDS調幅.7z
(4.22 MB, 下載次數: 75)
2020-5-30 15:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|