⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.txt

📁 基于VHDL硬件描述语言
💻 TXT
字号:
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_MFSK is
port(clk       :in std_logic;            --系统时钟
     start     :in std_logic;            --开始调制信号
     x       :in std_logic;             --基带信号
     y       :out std_logic);           --调制信号
end PL_MFSK;
architecture behav of PL_MFSK is
signal q :integer range 0 to 15;           --计数器
signal f :std_logic_vector(3 downto 0);    --分频器
signal xx:std_logic_vector(1 downto 0);   --寄存输入信号x的2位寄存器
signal yy:std_logic_vector(1 downto 0);   --寄存xx信号的寄存器
begin
process(clk) --此进程过对clk进行分频,得到4种载波信号f3、f2、 f1、f0。
begin
if clk'event and clk='1' then
   if start='0' then f<="0000";
   elsif f="1111" then f<="0000";
   else f<=f+1;
   end if;
end if;
end process;
process(clk)              --对输入的基带信号x进行串/并转换,得到2位并行信号的yy
begin
if clk'event and clk='1' then
   if start='0' then q<=0;
   elsif q=0 then q<=1;xx(1)<=x;yy<=xx;
   elsif q=8 then q<=9;xx(0)<=x;
   else q<=q+1;
   end if;
end if;
end process;
process(clk,yy)                          --此进程完成对输入基带信号x的MFSK调制
begin
if clk'event and clk='1' then
   if start='0' then y<='0';                 -- if语句完成2位码并行码到4种载波的选通
   elsif yy="00" then y<=not f(3);
   elsif yy="01" then y<=not f(2);
   elsif yy="10" then y<=not f(1);
   else y<=not f(0);
   end if;
end if;
end process;
end behav;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -