文档详情

光电-线阵CCD驱动电路的FPGA时序设计.doc

发布:2023-09-17约1.63千字共10页下载文档
文本预览下载声明
线阵CCD驱动电路的FPGA时序设计 实验目标 设计一线阵CCD驱动时钟,用一输入的clk,驱动CCD、AD、FIFO组成的整个CCD系统,并要求有一个复位端reset。 本实验主要是基于FPGA设计线阵CCD器件复杂驱动电路和整个CCD的电子系统控制逻辑时序的方法,并给出时序仿真波形,通过对线阵CCD驱动电路的时序设计,了解一个系统设计的基本方法。 总体方案 元器件选择 1、CCD:sonyILX511 2、AD:Analog Devices --- AD9224 3、FIFO:Integrated Device Technology --- IDT7204 方案: FPGA产生CCD线阵、AD、FIFO所需要的驱动时钟,从而实现ccd线阵信号的采集到信号调理,再经由AD进行模数转换后经FIFO 实现信号输出到读接口的过程。 我们需要用一个输入的clk,产生CCD、AD、FIFO所需要的clk,用以驱动它们。CCD需要两个时钟:rog和clk,AD和FIFO分别需要一个clk。 实验程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity ccd is port(clk,reset:in std_logic; rog,ccd1,ad1,fifo1:out std_logic); end ccd; architecture ccd_1 of ccd is signal count:integer range 0 to 2130; signal rog2:std_logic; signal ccd2:std_logic; signal ad2:std_logic; signal fifo2:std_logic; begin rog=rog2; ccd1=ccd2 or clk; ad1=ad2 or clk; fifo1=fifo2 or clk; process(reset,clk) begin if reset=0 then rog2=1; ccd2=1; ad2=1; fifo2=1; count=0; elsif clkevent and clk=1 then count=count+1; case count is when 0 to 6= rog2=1; ccd2=1; ad2=1; fifo2=1; when 7 to 16= rog2=0; ccd2=1; ad2=1; fifo2=1; when 17 to 22= rog2=1; ccd2=1; ad2=1; fifo2=1; when 23 to 55= rog2=1; ccd2=0; ad2=1; fifo2=1; when 56 to 58= rog2=1; ccd2=0; ad2=0; fifo2=1; when 59 to 2106= rog2=1; ccd2=0; ad2=0; fifo2=0; when 2107 to 2109= rog2=1; ccd2=0; ad2=0; fifo2=0; when 2110 to 2130= rog2=1; ccd2=0; ad2=1; fifo2=1; end case; if count=2130 then count=0; end if; end if; end process; end ccd_1; 仿真结果: 全图: 实验报告; 通过本次实验加深了对CCD的了解,掌握了VHDL的使用方法,加深了解时序电路的设计法。
显示全部
相似文档