📄 fsk_decode.vhd
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY fsk_decode IS --解调程序
PORT ( CLK : IN STD_LOGIC;
receive : in STD_LOGIC_VECTOR(7 DOWNTO 0) ;
s:out std_logic);
END;
architecture behave of fsk_decode is
signal q:std_logic_vector(7 downto 0):=(others=>'0');
signal m:STD_LOGIC_VECTOR(4 DOWNTO 0):="00000"; --过零检测的计数器
signal reg:STD_LOGIC_VECTOR(7 DOWNTO 0); --暂存接收到的dds信号
begin
process(clk)
begin
if clk 'event and clk='1' then
q<=q+1;reg<=receive;
end if;
end process;
process(q(7))
begin
if q(7) 'event and q(7)='0' then
if m<13 then s<='0'; --根据判断的次数,解调出信号
else s<='1';
end if;
end if;
end process;
process(clk)
begin
if clk 'event and clk='1' then
if q<"00000010" then m<="00000";
elsif reg>"01111000" and reg<"10001000" then m<=m+1;
--对接收到的信号,检测通过一定范围的次数
end if;
end if;
end process;
end behave;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -