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

📄 ca_code_signalofcon.vhd

📁 VHDLfullCODEforCAcodeGenerator.rar为CA码发生器的完整VHDL程序
💻 VHD
字号:

---- Data: 2004,8,4;

---- // CA_Code_SignalOfCon;
---- // For the C/A Code, Generate all of the Control Signal;
----    Load_Shift : the Reset Signal for the C/A Code Generator;
----    Code_End   : indicate the end of the prompt code cycle;
----    Dump       : indicate the start of the next code cycle;

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;


entity CA_Code_SignalOfCon is
    Port ( CodeClk          : in std_logic;
           CodeClk2         : in std_logic;
		 Slew             : in std_logic;
           Reset            : in std_logic;
		 Load_Shift       : out std_logic;
		 Code_Phase_Count :	out std_logic_vector(15 downto 0);
           Code_End         : out std_logic;	   
           Dump             : out std_logic
		 );
end CA_Code_SignalOfCon;

architecture rtl of CA_Code_SignalOfCon is

   signal  ClkTemp,Load_Reset :  std_logic;
   signal  Count              :  integer range 0 to 2045;
   signal  CountOfTemp        :  std_logic_vector(10 downto 0);
   signal  Code_EndOfTemp     :  std_logic;
   signal  DumpOfTemp         :  std_logic;
   signal  Load_ShiftOfTemp   :  std_logic;
    
begin


   GenerateLoad_Reset : process(ClkTemp,Reset)
   begin
      if Reset='0' then
	    Load_Reset <= '0';
      elsif ClkTemp'event and ClkTemp='1' then
	       Load_Reset <= '1';
	 end if;
   end process;
   ClkTemp <= CodeClk and ( not Load_Reset);


   CountOfCode : process(CodeClk2,Load_ShiftOfTemp)
   begin
	 if CodeClk2'event and CodeClk2='1' then
	     if Load_ShiftOfTemp='0' then
		   Count <= 2045;
		else
		   if Slew='1' then		    ------///////  Revise 9_10; 
		      Count <= Count - 1;
		   end if;			    ------///////  Revise 9_10; 
          end if;
      end if;
   end process;
   CountOfTemp      <= CONV_STD_LOGIC_VECTOR(Count,11);
   Code_Phase_Count <= "00000"&CountOfTemp;

   GenerateCode_End : process(CodeClk2)
   begin
      if CodeClk2'event and CodeClk2='1' then
	     if Count=1 then
		   Code_EndOfTemp <= '1';
          else
		   Code_EndOfTemp <= '0';
          end if;
      end if;
   end process;
   Code_End <= Code_EndOfTemp;

   Generate_Load_Shift:
   Load_ShiftOfTemp <= Load_Reset and ( not Code_EndOfTemp);
   Load_Shift       <= Load_ShiftOfTemp;

   GenerateDump : process(CodeClk2)
   begin
      if CodeClk2'event and CodeClk2='1' then
		if Count=0 then
		   DumpOfTemp <= '1';
          else
		   DumpOfTemp <= '0';
          end if;
      end if;
   end process;
   Dump <= DumpOfTemp;


end rtl;

⌨️ 快捷键说明

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