名稱:Quartus的2FSK調制解調verilog(代碼在文末付費下載)
軟件:Quartus
語言:Verilog
要求:使用verilog實現2FSK的調制和解調,并進行仿真
演示視頻:
部分代碼展示
//2FSK設計 module?FSK_2(clock,?reset,?code_in,decode_key,?code_out,LED_BIT,LED_SEG); ???input??????clock;//輸入時鐘 ???input??????reset;//復位--k1 ???input??????code_in;//輸入調制信號--k2 input??????decode_key;//輸入解調控制--k3,按下按鍵后啟動解調 ???output?????code_out;//輸出解調信號 output?[7:0]?LED_BIT;//數碼管位選 output?[7:0]?LED_SEG;//數碼管段選 ??? ???wire?[7:0]?Modulate_fsk2;//2FSK信號 wire?[7:0]?decode_fsk2;//2FSK信號 wire??code_in;//輸入調制信號 wire??decode_code;//輸出解調信號 wire?[3:0]?state;//當前狀態(tài)值 assign?code_out=decode_code; ??? ???//2FSK調制模塊設計 ???Modulate?U_Modulate( .clock(clock),?//輸入時鐘 .reset(~reset),//復位? .code_in(code_in),?//輸入調制信號 .fsk2(Modulate_fsk2)//輸出FSK信號 ); ??? ???//2FSK解調模塊設計 ???decode?U_decode( .clock(clock),?//輸入時鐘 .reset(~reset),?//復位 .code_out(decode_code),?//輸出解調信號 .fsk2(decode_fsk2)//輸入FSK信號 ); //狀態(tài)機控制,按下decode_key按鍵后啟動解調 state_machine?i_state_machine( .?clock(clock), .?reset(~reset),//復位--k1 .?decode_key(decode_key),//輸入解調控制--k3 .?Modulate_fsk2(Modulate_fsk2),//輸入2FSK信號 .?decode_fsk2(decode_fsk2),//輸出2FSK信號 .?state_out(state)//狀態(tài)值 );??? //數碼管顯示模塊 display?i_display( .?clock(clock),//50M時鐘 .?code_in(code_in),//輸入調制信號 .?code_out(decode_code),//輸出解調信號 .?state(state),//當前狀態(tài)值 .?LED_BIT(LED_BIT),//數碼管位選 .?LED_SEG(LED_SEG)//數碼管段選 );
設計文檔(文檔點擊可下載):
1. 2FSK(Frequency Shift Keying)為二進制數字頻率調制(二進制頻移鍵控),用載波的頻率來傳送數字信息,即用所傳送的數字信息控制載波的頻率。2FSK信號便是符號“0”對應于載頻 f1,而符號“1”對應于載頻 f2(與 f1 不同的另一載頻)的已調波形,而且 f1 與 f2 之間的改變是瞬間的。傳“0”信號時,發(fā)送頻率為 f1 的載波; 傳“1”信號時,發(fā)送頻率為 f2的載波。
2. 工程文件
3. 程序文件
4. 程序編譯
5. RTL圖
6. testbench
7. 仿真圖
按下按鍵后啟動解調,可以看到解調出的code_out與輸入code_in一致
調制模塊
狀態(tài)控制模塊
按下按鍵后啟動解調
解調模塊
數碼管顯示模塊
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=170
閱讀全文