mcuiface.vhd.bak

来自「汽车四轮定位CCD驱动CPLD源代码」· BAK 代码 · 共 84 行

BAK
84
字号
library ieee; 
use ieee.std_logic_1164.all;  --引用库
USE ieee.std_logic_arith.ALL;
USE ieee.std_logic_unsigned.ALL;

entity Driver is
    port(Gout:out std_logic;        --输出1
	 Latch:out std_logic;       --输出Latch
         data1:out std_logic;       --输出数据1 jumpup place
         data2:out std_logic;       --输出数据2 jumpdown place

         dataclk: in std_logic;     --与MCU接口的data clock
         set:in std_logic;          --数据请求
         ccdin:in std_logic;        --CCD比较信号
         clk:in std_logic);         --CCD输入信号
    
    signal tempGout:std_logic;      --temp输出,保存上周期输出信号
    signal tempLatch:std_logic;     
end;

architecture behavioral of Driver is
   signal countc:integer range 0 to 4095;
   signal jumpup:integer range 0 to 4095;
   signal jumpdown:integer range 0 to 4095;
   signal jumpup1:std_logic_vector(11 downto 0);
   signal jumpdown1:std_logic_vector(11 downto 0);

   signal I:integer range 0 to 14;
   begin
   
   process(clk,set,ccdin,dataclk)
     begin
     
	 if rising_edge(set) then
	 	I<=0;


     elsif set='1' then          --复位
           countc<=0;
  		   jumpup1<=conv_std_logic_vector(jumpup,12);
		   jumpdown1<=conv_std_logic_vector(jumpdown,12);
           if dataclk'event and dataclk='0' then --下降延锁存数据
				I<=I+1;

				data1<=jumpup1(I);
				data2<=jumpdown1(I);

           end if;
           

     elsif clk'event and clk='0' then   --下降沿触发

        countc<=countc+1;         --计数

		if  countc=2209 then
		   tempLatch<='1';
	        elsif countc=2211 then      --<<----
		   tempGout<='1';               --Gout给出高电平
		elsif countc=2213 then   --<<----
	           tempGout<='0';               --Gout给出低电平
		elsif countc=2215 then
		   tempLatch<='0';
	           countc<=0;
	           jumpup<=0;
	           jumpdown<=0;
		end if;
     end if;

     if ccdin'event and ccdin='1' then
	    jumpup<=countc;
	 end if;
        
     if ccdin'event and ccdin='0' then
		jumpdown<=countc;
     end if;

  
	 Gout<=tempGout;
     Latch<=tempLatch;
   end process;

end behavioral;

⌨️ 快捷键说明

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