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

📄 statuscontrol.vhd

📁 通信基带信号发生器的设计
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY STATUSCONTROL IS
PORT(  CLK:IN STD_LOGIC;
       STATU:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
       NCOOUT:IN STD_LOGIC_VECTOR(9 DOWNTO 0);
       PSK_IN:IN STD_LOGIC_VECTOR(15 DOWNTO 0);
        FM_IN:IN STD_LOGIC_VECTOR(23 DOWNTO 0);
       FSK_IN:IN STD_LOGIC_VECTOR(23 DOWNTO 0);
       FRE,FREZ:IN STD_LOGIC_VECTOR(31 DOWNTO 0);

       EN_FB,EN_SJB,EN_SIN,EN_AM,EN_FM,EN_ASK,EN_FSK,EN_PSK:OUT STD_LOGIC;
       FRE5:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
       FRE7:OUT STD_LOGIC_VECTOR(23 DOWNTO 0);
       PHAIN:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
       FRE_FM,FRE_AM:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
       SININ,ASKIN,AMIN:OUT STD_LOGIC_VECTOR(9 DOWNTO 0)
     );
END ENTITY;

ARCHITECTURE MEALYMACHINE OF STATUSCONTROL IS

TYPE STATUS IS(SINE,AM,FM,ASK,FSK,PSK);
SIGNAL STATE:STATUS;

BEGIN

PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
   CASE STATU IS
 		
     	WHEN "000"=>                     
 			 FRE5<=FRE;
             FRE7<="000000000000000000000000";
             PHAIN<="0000000000000000";
             FRE_FM<="00000000000000000000000000000000";
             FRE_AM<="00000000000000000000000000000000";
		     SININ<=NCOOUT;
             AMIN<="0000000000";
             ASKIN<="0000000000";
             EN_SIN<='1';
             EN_AM<='0';
             EN_FM<='0';
             EN_ASK<='0';
			 EN_PSK<='0';
             EN_FSK<='0';
			 EN_FB<='0';
			 EN_SJB<='0';
 	   	WHEN "001"=>							
             FRE5<=FRE;
             FRE7<="000000000000000000000000";
             PHAIN<="0000000000000000";
             FRE_FM<="00000000000000000000000000000000";
             FRE_AM<=FREZ;
		     SININ<="0000000000";
             AMIN<=NCOOUT;
             ASKIN<="0000000000";
             EN_SIN<='1';
             EN_AM<='1';
             EN_FM<='0';
             EN_ASK<='0';
			 EN_PSK<='0';
             EN_FSK<='0';
             EN_FB<='0';
			 EN_SJB<='0';	
        WHEN "010"=>
             FRE5<=FRE;
             FRE7<=FM_IN;
             PHAIN<="0000000000000000";
             FRE_FM<=FREZ;
             FRE_AM<="00000000000000000000000000000000";
		     SININ<=NCOOUT;
             AMIN<="0000000000";
             ASKIN<="0000000000";
             EN_SIN<='1';
             EN_AM<='0';
             EN_FM<='1';
             EN_ASK<='0';
			 EN_PSK<='0';
             EN_FSK<='0';
             EN_FB<='0';
			 EN_SJB<='0';
     	WHEN "011"=>                     
 		     FRE5<=FRE;
             FRE7<="000000000000000000000000";
             PHAIN<="0000000000000000";
             FRE_FM<="00000000000000000000000000000000";
             FRE_AM<="00000000000000000000000000000000";
		     SININ<="0000000000";
             AMIN<="0000000000";
             ASKIN<=NCOOUT;
             EN_SIN<='1';
             EN_AM<='0';
             EN_FM<='0';
             EN_ASK<='1';
			 EN_PSK<='0';
             EN_FSK<='0';
             EN_FB<='0';
			 EN_SJB<='0';
        WHEN "100"=>
             FRE5<=FRE;
             FRE7<="000000000000000000000000";
             PHAIN<=PSK_IN;
             FRE_FM<="00000000000000000000000000000000";
             FRE_AM<="00000000000000000000000000000000";
		     SININ<=NCOOUT;
             AMIN<="0000000000";
             ASKIN<="0000000000";
             EN_SIN<='1';
             EN_AM<='0';
             EN_FM<='0';
             EN_ASK<='0';
			 EN_PSK<='1';
             EN_FSK<='0';
             EN_FB<='0';
			 EN_SJB<='0'; 
        WHEN "101"=>
             FRE5<=FRE;
             FRE7<=FSK_IN;
             PHAIN<="0000000000000000";
             FRE_FM<="00000000000000000000000000000000";
             FRE_AM<="00000000000000000000000000000000";
		     SININ<=NCOOUT;
             AMIN<="0000000000";
             ASKIN<="0000000000";
             EN_SIN<='1';
             EN_AM<='0';
             EN_FM<='0';
             EN_ASK<='0';
			 EN_PSK<='0';
             EN_FSK<='1';
             EN_FB<='0';
			 EN_SJB<='0';
     	WHEN "110"=>
 			 FRE5<="00000000000000000000000000000000";
             FRE7<="000000000000000000000000";
             PHAIN<="0000000000000000";
             FRE_FM<="00000000000000000000000000000000";
             FRE_AM<="00000000000000000000000000000000";
		     SININ<="0000000000";
             AMIN<="0000000000";
             ASKIN<="0000000000";
             EN_SIN<='0';
             EN_AM<='0';
             EN_FM<='0';
             EN_ASK<='0';
			 EN_PSK<='0';
             EN_FSK<='0';
             EN_FB<='1';
			 EN_SJB<='0';
     	WHEN "111"=>
 			 FRE5<="00000000000000000000000000000000";
             FRE7<="000000000000000000000000";
             PHAIN<="0000000000000000";
             FRE_FM<="00000000000000000000000000000000";
             FRE_AM<="00000000000000000000000000000000";
		     SININ<="0000000000";
             AMIN<="0000000000";
             ASKIN<="0000000000";
             EN_SIN<='0';
             EN_AM<='0';
             EN_FM<='0';
             EN_ASK<='0';
			 EN_PSK<='0';
             EN_FSK<='0';
             EN_FB<='0';
			 EN_SJB<='1';			
	    END CASE;
	END IF;
	END PROCESS;

END MEALYMACHINE;
			

⌨️ 快捷键说明

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