微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > PCB设计问答 > PCB设计学习讨论 > vhdl语言写的2cpsk和2dpsk建模的一个程序中,相位相反的代码看不懂是如何产生的,求大神帮忙

vhdl语言写的2cpsk和2dpsk建模的一个程序中,相位相反的代码看不懂是如何产生的,求大神帮忙

时间:10-02 整理:3721RD 点击:

library ieee;

use ieee.std_logic_arith.all;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity pskj is

port(clk:in std_logic;-- 系统时钟

    start:in std_logic; --开始信号

    x:in std_logic;--基带信号

    y:out std_logic); --调制信号

end pskj;

architecture behav of pskj is

signal q:std_logic_vector(1 downto 0);--二进制计数器,为了产生0相和π相载波信号

signal f1,f2:std_logic;--f1为0相信号,f2为π相信号

begin  

process(clk) ---此进程主要是为了产生相位相隔π的两重载波信号f1和f2

begin  

if clk'event and clk='1' then   

if start='0' then q<="00";   

elsif q<="01" then f1<='1';f2<='0';q<=q+1;   

elsif q="11" then f1<='0';f2<='1';q<="00";   

else f1<='0';f2<='1';q<=q+1;   

end if;

end if;  

end process;

process(clk,x)

begin  

if clk'event and clk='1' then   

if q(0)='1' then        

if x='1' then y<=f1;      

else y<=f2;      

end if;   

end if;

end if;  

end process;

end behav;


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top