QPSK调制解调实现设计VHDL代码Quartus仿真

名称:QPSK调制解调实现设计VHDL代码Quartus仿真(文末获取)

软件:Quartus

语言:VHDL

代码功能:

QPSK调制解调实现

1、设计正弦波载波模块

2、进行QPSK调制

3、进行QPSK解调,要求解调出的信号与原始信号一致

1. 工程文件

quartusII 9.0版本

2. 程序文件

顶层原理图

模块框图

载波模块

解调模块

调制模块

3. 程序编译

4. 程序RTL图

5. 仿真图

5.1 调制模块

5.2 载波产生模块

6.3 解调模块

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
   
--sin,cos载波产生模块
ENTITY carrier_sin_cos IS
   PORT (
      clk       : IN STD_LOGIC;
      rst       : IN STD_LOGIC;
      cos_wave  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--cos波
      sin_wave  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--sin波
   );
END carrier_sin_cos;
ARCHITECTURE trans OF carrier_sin_cos IS
   
   SIGNAL valu    : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   SIGNAL count   : STD_LOGIC_VECTOR(4 DOWNTO 0) := "00000";
   
   SIGNAL valu_2  : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   SIGNAL count_2 : STD_LOGIC_VECTOR(4 DOWNTO 0) := "00000";
BEGIN
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN
         IF (rst = '1') THEN
            count <= "00000";
         ELSIF (count = "11111") THEN
            count <= "00000";
         ELSE
            count <= count + "00001";--波形地址累加器
         END IF;
      END IF;
   END PROCESS;
   
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN
         IF (rst = '1') THEN
            valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu 
                  valu <= "11011010";
            END CASE;
         END IF;
      END IF;
   END PROCESS;
   
   
   PROCESS (clk)
   BEGIN
源代码

点击下方的公众号卡片获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值