library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; --库和程序包调用
entity GMSK is --实体定义,实体名GMSK
port --各个端口定义
(clk:in std_logic; --clk端口,in方向,标准逻辑位类型
data:out std_logic; --data端口,out方向,标准逻辑位类型
A3:out std_logic;
A4:out std_logic;
A5:out std_logic;
A6:out std_logic;
A7:out std_logic;
A8:out std_logic;
A9:out std_logic;
A10:out std_logic;
A11:out std_logic;
A12:out std_logic
);
end GMSK;
architecture address of GMSK is --结构体定义,结构体名address
--以下为结构体的用到的信号、数据类型等的声明
signal count_4:integer range 0 to 1; - -信号count_4定义,范围为0到1的整数
signal clk_2:std_logic; - -信号clk_2定义,标准逻辑位
signal clk_4:std_logic;
signal b1,b2,b3,b4,b5,b6:std_logic;
signal add_count:integer range 0 to 3;
signal m:std_logic_vector(6 downto 0); - -信号m定义,7位的标准逻辑位矢量
begin --结构体开始
process(clk) - -进程定义,敏感信号为clk
begin
if(clk'event and clk='1') then --如果clk事件发生并且clk=‘1’执行下述表达式
m<=(m(5 downto 0)&(m(4) xor m(0) xor(not(m(6)or m(5)or m(4)or m(3)or m(2)or m(1)or m(0)))));
-- m(6)和m(5)、m(4)、m(3)、m(2)、m(1)、m(0)相或,其所得值的非和m(4)、m(0)相异或,异或后的值和6位的m信号相与,最后把所得值赋值给m。生成一共7位的m序列
clk_2<=not clk_2; -- clk_2的非信号赋值给clk_2,实现二分频
if(count_4=1) then - -如果count_4=1,则执行下述表达式,实现四分频
clk_4<=not clk_4; count_4<=0; -- 把clk_4的非赋值给clk_4,再把‘0’赋值给count_4
else
count_4<=count_4+1; - -条件count_4=1不成立时,执行count_4+1的值赋值给count_4
end if; --结束if语句
b1<=m(0); --以下为赋值语句,实现移位赋值功能,把m的6位和b的6位相对应
b2<=b1;
b3<=b2;
b4<=b3;
b5<=b4;
b6<=b5;
if(b6='1') then --当b6='1' 时
add_count<=add_count+1; -- 把add_count+1赋值给add_count,加1功能
else
add_count<=add_count-1; --当b6='1'不成立'时,add_count-1赋值给add_count,减1功能
end if;
case add_count is - -case语句,象限数决定A6、A7
when 0=>A6<='0';A7<='0'; - -当add_count为0时,执行A6<='0';A7<='0'
when 1=>A6<='1';A7<='0'; - -当add_count为1时,执行A6<='1';A7<='0'
when 2=>A6<='0';A7<='1'; - -当add_count为2时,执行A6<='0';A7<='1'
when 3=>A6<='1';A7<='1'; - -当add_count为3时,执行A6<='1';A7<='1'
end case;
end if;
end process;
- -以下为结构体的功能描述部分
data<=b3; - -把b3赋值给data
A3<=clk_4; - -把4分频信号clk_4赋值给A3
A4<=clk_2; - -把2分频信号clk_2赋值给A4
A5<=clk; - -把时钟信号clk赋值给A5
A8<=b1;
A9<=b2;
A10<=b3;
A11<=b4;
A12<=b5;
end address; - -结束结构体address
温馨提示:答案为网友推荐,仅供参考