16QAM调制VHDL源代码
本页的VHDL源代码涵盖16QAM调制vhdl代码并提供链接到QQAM调制基础知识。
硬件描述语言(VHDL)代码
——库声明
图书馆IEEE;
使用IEEE.STD_LOGIC_1164.ALL;
使用IEEE.STD_LOGIC_ARITH.ALL;
使用IEEE.STD_LOGIC_UNSIGNED.ALL;
——实体声明
实体qam_new_n为
端口(clk:在std_logic;——全球时钟
重置:在std_logic;——异步主动高复位
Valid_in:在std_logic中;—当高噪音是有效的
Din: in std_logic_vector(3 downto 0);——数据在
Dout_rl: out std_logic_vector(15 downto 0);——真实的
Dout_ig: out std_logic_vector(15 downto 0);——想象出来
Valid_out: out std_logic——当high real和imag有效时
);
qam_new_n结束;
——体系结构声明
architecture qam_new_n的行为为
信号计数:std_logic;
信号dout_rl_s: std_logic_vector(15 downto 0);
信号dout_ig_s: std_logic_vector(15 downto 0);
开始
——映射16点星座的过程
过程(时钟、复位)
开始
If (reset = '1'),则
Dout_rl_s <= (others => '0');
Dout_ig_s <= (others => '0');
计数<= '0';
Valid_out <= '0';
Elsif (clk'event and clk = '1')然后
If (valid_in = '1'
计数<= '0';
Case din为
当“0000”= >
Dout_rl_s <= x"143d";——x“0051”;
Dout_ig_s <= x"143d";——x“0051”;
Valid_out <= '1';
当“0001”= >
Dout_rl_s <= x"143d";——x“0051”;
dout_ig_s <= x"3CB7";00 - x”f2”;
Valid_out <= '1';
当“0010”= >
Dout_rl_s <= x"143d";——x“0051”;
dout_ig_s <= x"EBC3";——x“FFAE”;
Valid_out <= '1';
当“0011”= >
Dout_rl_s <= x"143d";——x“0051”;
dout_ig_s <= x"C349";——x“FF0D”;
Valid_out <= '1';
当“0100”= >
dout_rl_s <= x"3CB7";00 - x”f2”;
Dout_ig_s <= x"143d";——x“0051”;
Valid_out <= '1';
当“0101”= >
dout_rl_s <= x"3CB7";00 - x”f2”;
dout_ig_s <= x"3CB7";00 - x”f2”;
Valid_out <= '1';
当“0110”= >
dout_rl_s <= x"3CB7";00 - x”f2”;
dout_ig_s <= x"EBC3";——x“FFAE”;
Valid_out <= '1';
当“0111”= >
dout_rl_s <= x"3CB7";00 - x”f2”;
dout_ig_s <= x"C349";——x“FFC3”;
Valid_out <= '1';
当“1000”= >
dout_rl_s <= x"EBC3";
Dout_ig_s <= x"143d";——x“0051”;
Valid_out <= '1';
当“1001”= >
dout_rl_s <= x"EBC3";——x“FFAE”;
dout_ig_s <= x"3CB7";00 - x”f2”;
Valid_out <= '1';
当“1010”= >
dout_rl_s <= x"EBC3";——x“FFAE”;
dout_ig_s <= x"EBC3";——x“FFAE”;
Valid_out <= '1';
当“1011”= >
dout_rl_s <= x"EBC3";——x“FFAE”;
dout_ig_s <= x"C349";——x“FF0E”;
Valid_out <= '1';
当“1100”= >
dout_rl_s <= x"C349";——x“FF0E”;
Dout_ig_s <= x"143d";——x“0051”;
Valid_out <= '1';
当“1101”= >
dout_rl_s <= x"C349";——x“FF0E”;
dout_ig_s <= x"3CB7";00 - x”f2”;
Valid_out <= '1';
当“1110”= >
dout_rl_s <= x"C349";——x“FF0E”;
dout_ig_s <= x"EBC3";——x“FFAE”;
Valid_out <= '1';
当“1111”= >
dout_rl_s <= x"C349";——x“FF0E”;
dout_ig_s <= x"C349";——x“FF0E”;
Valid_out <= '1';
当others => null;
结束;
其他的
Dout_rl_s <= (others => '0');
Dout_ig_s <= (others => '0');
Valid_out <= valid_in;
如果;
如果;
结束过程;
Dout_rl <= dout_rl_s;
Dout_ig <= dout_ig_s;
端行为;
图书馆IEEE;
使用IEEE.STD_LOGIC_1164.ALL;
使用IEEE.STD_LOGIC_ARITH.ALL;
使用IEEE.STD_LOGIC_UNSIGNED.ALL;
——实体声明
实体qam_new_n为
端口(clk:在std_logic;——全球时钟
重置:在std_logic;——异步主动高复位
Valid_in:在std_logic中;—当高噪音是有效的
Din: in std_logic_vector(3 downto 0);——数据在
Dout_rl: out std_logic_vector(15 downto 0);——真实的
Dout_ig: out std_logic_vector(15 downto 0);——想象出来
Valid_out: out std_logic——当high real和imag有效时
);
qam_new_n结束;
——体系结构声明
architecture qam_new_n的行为为
信号计数:std_logic;
信号dout_rl_s: std_logic_vector(15 downto 0);
信号dout_ig_s: std_logic_vector(15 downto 0);
开始
——映射16点星座的过程
过程(时钟、复位)
开始
If (reset = '1'),则
Dout_rl_s <= (others => '0');
Dout_ig_s <= (others => '0');
计数<= '0';
Valid_out <= '0';
Elsif (clk'event and clk = '1')然后
If (valid_in = '1'
计数<= '0';
Case din为
当“0000”= >
Dout_rl_s <= x"143d";——x“0051”;
Dout_ig_s <= x"143d";——x“0051”;
Valid_out <= '1';
当“0001”= >
Dout_rl_s <= x"143d";——x“0051”;
dout_ig_s <= x"3CB7";00 - x”f2”;
Valid_out <= '1';
当“0010”= >
Dout_rl_s <= x"143d";——x“0051”;
dout_ig_s <= x"EBC3";——x“FFAE”;
Valid_out <= '1';
当“0011”= >
Dout_rl_s <= x"143d";——x“0051”;
dout_ig_s <= x"C349";——x“FF0D”;
Valid_out <= '1';
当“0100”= >
dout_rl_s <= x"3CB7";00 - x”f2”;
Dout_ig_s <= x"143d";——x“0051”;
Valid_out <= '1';
当“0101”= >
dout_rl_s <= x"3CB7";00 - x”f2”;
dout_ig_s <= x"3CB7";00 - x”f2”;
Valid_out <= '1';
当“0110”= >
dout_rl_s <= x"3CB7";00 - x”f2”;
dout_ig_s <= x"EBC3";——x“FFAE”;
Valid_out <= '1';
当“0111”= >
dout_rl_s <= x"3CB7";00 - x”f2”;
dout_ig_s <= x"C349";——x“FFC3”;
Valid_out <= '1';
当“1000”= >
dout_rl_s <= x"EBC3";
Dout_ig_s <= x"143d";——x“0051”;
Valid_out <= '1';
当“1001”= >
dout_rl_s <= x"EBC3";——x“FFAE”;
dout_ig_s <= x"3CB7";00 - x”f2”;
Valid_out <= '1';
当“1010”= >
dout_rl_s <= x"EBC3";——x“FFAE”;
dout_ig_s <= x"EBC3";——x“FFAE”;
Valid_out <= '1';
当“1011”= >
dout_rl_s <= x"EBC3";——x“FFAE”;
dout_ig_s <= x"C349";——x“FF0E”;
Valid_out <= '1';
当“1100”= >
dout_rl_s <= x"C349";——x“FF0E”;
Dout_ig_s <= x"143d";——x“0051”;
Valid_out <= '1';
当“1101”= >
dout_rl_s <= x"C349";——x“FF0E”;
dout_ig_s <= x"3CB7";00 - x”f2”;
Valid_out <= '1';
当“1110”= >
dout_rl_s <= x"C349";——x“FF0E”;
dout_ig_s <= x"EBC3";——x“FFAE”;
Valid_out <= '1';
当“1111”= >
dout_rl_s <= x"C349";——x“FF0E”;
dout_ig_s <= x"C349";——x“FF0E”;
Valid_out <= '1';
当others => null;
结束;
其他的
Dout_rl_s <= (others => '0');
Dout_ig_s <= (others => '0');
Valid_out <= valid_in;
如果;
如果;
结束过程;
Dout_rl <= dout_rl_s;
Dout_ig <= dout_ig_s;
端行为;
有用的链接到VHDL代码
参考以下以及左侧面板上提到的有用的VHDL代码的链接。
D触发器
T触发器
读写RAM
4 x1 MUX
4位二进制计数器
Radix4蝴蝶
16 qam调制
2bit并行串行
射频和无线教程
无线局域网802.11交流802.11广告wimax无线个域网z - waveGSMLTEUMTS蓝牙超宽频物联网卫星天线雷达