軟件:Quartus
語言:VHDL
要求:使用VHDL實現(xiàn)2FSK的調制和解調,并進行仿真
演示視頻:
部分代碼展示
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; --2FSK設計 ENTITY?FSK_2?IS ???PORT?( ??????clock????:?IN?STD_LOGIC;--輸入時鐘 ??????reset????:?IN?STD_LOGIC;--復位 ??????code_in??:?IN?STD_LOGIC;--輸入調制信號 ??????code_out?????:?OUT?STD_LOGIC--輸出解調信號 ???); END?FSK_2; ARCHITECTURE?behave?OF?FSK_2?IS --2FSK調制模塊設計 ?COMPONENT?Modulate?IS ???PORT?( ??????clock????:?IN?STD_LOGIC;--輸入時鐘 ??????reset????:?IN?STD_LOGIC;--復位 ??????code_in??:?IN?STD_LOGIC;--輸入調制信號 ??????fsk2?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--輸出FSK信號 ???); END?COMPONENT; ? ----2FSK解調模塊設計? ?COMPONENT?decode?IS ???PORT?( ??????clock?????:?IN?STD_LOGIC;--輸入時鐘 ??????reset?????:?IN?STD_LOGIC;--復位 ??????fsk2??????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--輸入FSK信號 ??????code_out??:?OUT?STD_LOGIC--輸出解調信號 ???); END?COMPONENT; SIGNAL?fsk2????:?STD_LOGIC_VECTOR(7?DOWNTO?0)?:=?"00000000";--FSK信號 BEGIN ???--例化調制模塊 ???U_Modulate?:?Modulate ??????PORT?MAP?( ?????????clock???=>?clock, ?????????reset???=>?reset, ?????????code_in??=>?code_in,--輸入調制信號 ?????????fsk2???=>?fsk2--輸出FSK信號 ??????); --例化解調模塊 ???U_decode?:?decode ??????PORT?MAP?( ?????????clock???=>?clock, ?????????reset???=>?reset, ?????????code_out??=>?code_out,--輸出解調信號 ?????????fsk2???=>?fsk2--輸入FSK信號 ??????); ??? END?behave;
設計文檔(文檔點擊可下載):
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_in為輸入調制信號,fsk2為2FSK信號。Code_out為解調信號,可以看到與調制信號波形一致
調制模塊仿真
解調模塊
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=171
閱讀全文