产品中心
IS215UCVEM09B
- 品牌:美国
- 规格:IS215UCVEM09B
- 材质:IS215UCVEM09B
- 产地:瑞士
- 更新时间:2015-05-23
-
联系方式
周忆 女士(销售工程师)
- 举报
- 收藏该店铺
IS215UCVEM09B
Cadence公司成就电子设计技术创新,并在创建当今集成电路和电子产品中发挥核心作用。我们的客户采用Cadence的软件、硬件、IP、设计服务,设计和验证用于消费电子、网络和通讯设备以及计算机系统中的半导体器件。公司总部位于美国加州圣荷塞市,在各地均设有销售办事处、设计中心和研究机构,以服务于电子产业。在工业生产自动化系统中,通过计算机视觉和图像处理技术来实现产品的质量监测和控制,已逐渐成为一种有效的应用技术。线阵CCD 图像传感器广泛地应用于产品尺寸测量和分类、非接触尺寸测量、条形码、形态识别等众多领域。在图像检测系统中,应具备一个高速的子图像提取和输出模块,本文采用FPGA 器件EP3C25F256C8 和CCD 线阵图像传感器RL1024P,实现线阵CCD 图像检测系统中的子图像提取和输出功能。
1 子图像提取模块的设计
子图像提取模块的功能可描述为:采用FPGA 器件实现,根据串行输入的黑白图像和同步信号,提取该图像中设定尺寸大小的子图像。假设输入图像大小为i * j,某一像素点的坐标位置为(X,Y),要取出子图像的大小为m * n,则用c 代码描述为:for(b=0;b《j ; b++){for (a=0;a《i; a++){ // 取出Xa,Yb 到 Xa+m,Yb+n 的子图像;} }
根据系统设计的要求,线阵CCD 图像采集模块采用串行的方式输出1×1024 像素的一行图像,子图像提取模块接收该图像数据、缓冲、再输出16×16 像素的子图像。子图像提取模块的外部端口,如图1 所示。主要信号有:像素同步时钟信号CCD_CLK、像素数据CCD_DATA、当前输入像素的坐标CCD_ADDR[90] ;另外,N_RST 和SYS_CLK 为系统提供的复位信号和处理时钟信号。其中,每个CCD_CLK 的上升沿出现时CCD_DATA 像素有效,且该像素所在的位置为CCD_ADDR[90] 值。
子图像提取模块的设计
为了实现每个CCD_CLK 周期内均输出一个子图像,SYS_CLK应该为CCD_CLK 的10 倍左右。
本文采用“图像转置缓冲区”的方法来实现子图像提取模块。“图像转置缓冲区”是一个按行写入(更新)、按列读出的一个RAM 缓冲区。在FPGA 内部设置一个1024 个单元的RAM 缓冲区,每个单元的位宽为16bits.线阵CCD 采集模块输出的线阵图像与子图像的关系,如图2 所示。其中,第0 行表示图像的当前行,第N 行为历史行,每行有1024 个像素,按照p0 至p1023 的像素顺序输出。假设当前CCD_CLK 输入的像素为第0行的p16 像素,则其对应的16X16 子图像为图中的阴影部分。
线阵图像与子图像的关系 “图像转置缓冲区”RAM 块存储图像的结构
“图像转置缓冲区”RAM 块存储图像的结构,如图3 所示。
RAM 块共有1024 个单元,每个单元为16 位的宽度,可存放近的16 行图像数据。对比图2 和图3,可以发现,RAM 块的地址编号相当于线阵CCD 图像的某一行像素的位置,某个RAM单元的位D15 ~ D0 对应某一列的近16 个像素,相当于对线阵图像转置后再存放到RAM 块中。对RAM 缓冲区进行写操作时,由于线阵CCD 图像的数据是按行逐位输入的,每个CCD_CLK 时钟上升沿出现时,仅需更新RAM 缓冲区中当前像素对应的比特,因此在逻辑上是根据图像按行写入RAM 区的。在FPGA器件中,可设计一个状态机来实现“图像转置缓冲区”的读写操作,如图4 所示。
图像转置RAM读写状态
子图像提取模块输出的子图像有256 个像素,在FPGA 内部通过寄存器暂存上一个输出的子图像;当更新RAM 区的某个像素时,把16X16 的滑动窗口向右移动一列像素的位置,把滑动窗口内的数据作为输出,就可以得到新的子图像。
2 设计仿真
在本文的设计仿真中,由于用到图像文件的解析和图像显示,因此借助MATLAB 和Modelsim 软件,通过文件读写的方式实现的联合仿真,可使仿真处理更加便捷和直观。其中,MATLAB 用来把图像文件转换为输入的像素,以及显示输出的子图像;Modelsim 用来仿真和验证FPGA 设计是否正确。
本文使用MATLAB 和Modelsim 进行联合仿真,主要有以下三个步骤。第一步,在MATLAB 中编写m 文件,读取bmp 位图文件并把像素数据写入文件datain.txt 中,作为ModelSim仿真的输入激励信号。第二步,在ModelSim 中,用VHDL 编写Testbench 测试文件,读取datain.txt 文件,产生与CCD_CLK 同步的像素信号;编写DO 文件进行自动化仿真,再把仿真输出的子图像数据保存在dataout.txt 文件中。第三步,在MATLAB 中编写m 文件,解析dataout.txt 文件,依次显示为16×16 的黑白图片序列,确定仿真结果是否正确。本设计仿真输入的图像及输出的子图像序列,如图5 所示。从仿真结果可知,设计方法是正确的,仿真结果符合设计功能的要求。
仿真输入的图像及输出的子图像序列由于数字混频后I和Q分别含4个支路,为实现滤波算法的并行处理,需要对各自的滤波器系数进一步做四相分解,以得到各支路系数。这样实际上对系数完成了八相分解,因此滤波器系数的个数N应该为8的倍数。系数八相分解后,4个I支路的滤波器系数分别为2 8m h + 、4 8m h + 、6 8m h + 和8 8m h + ,4个Q支路的滤波器系数分别为1 8m h + 、3 8m h + 、5 8m h + 和7 8m h + ,其中m = 0,1,…, N / 8 ?1.
系数分解完成后,根据各支路多相滤波结构,在SysGen中采用FIR Compiler IP核实现算法设计。考虑到FPGA中除了实现超宽带数字下变频算法外,还包含接口与通讯、高速数据打包传输等功能,节省数字下变频算法在FPGA中的资源占用,两种信号带宽的滤波器采用系数重加载方式实现,其加载时序如图4所示。
FIR Compiler系统加载时序
以I路的一个支路为例,SysGen中实现多相滤波的算法结构如图5所示,4路滤波输出求和过程同时实现了数字混频算法的加减运算。其余I支路以及Q路各支路滤波设计与此类似,仅延时有所不同,此处不再赘述。
并行多相滤波算法实现
经多相滤波处理后,I/Q分别得到并行4路、速率为200MHz的基带信号,将各自支路信号按顺序组合,即获得等效速率为800MHz的I/Q数据,也就实现了对600MHz带宽信号的数字下变频设计。
3.4 数据抽取
由于数字混频和多相滤波后的信号已完成了2倍抽取,要实现4倍抽取只需在此基础上再进行2倍抽取即可。考虑到后续数据处理的一致性,4倍抽取后的I/Q信号仍需要包含4个支路,选取各自多相滤波后的第1、3支路分别进行2倍抽取,SysGen算法实现如图6示。抽取后得到并行4路、速率为100MHz的基带I/Q信号,将各自支路信号按顺序组合即实现对350MHz带宽信号的数字下变频。
数据抽取算法实现
4.仿真应用
以350MHz带宽的线性调频信号为例,数字中频信号和数字下变频仿真结果如图7示。从图中看出,以并行多相滤波结构为基础的算法实现了数字中频信号的基带变换,且数字下变频后信号带内平坦度较好,满足工程应用需求。
数字下变频仿真结果
限于本文中的采样率和并行处理结构,FPGA的运行时钟仅为200MHz,这对的FPGA来说并不算困难。而对于更高速率的中频采样系统,只要FPGA的处理速度可以接受,那么仍然可以采用本文的算法结构实现。通过FPGA的多重配置可以有效地精简控制结构的设计,同时可以用逻辑资源较少的FPGA器件实现需要很大资源才能实现的程序。以Virtex5系列开发板和配置存储器SPI FLASH为基础,从硬件电路和软件设计两个方面对多重配置进行分析,给出了多重配置实现的具体步骤,对实现复杂硬件设计工程有的参考价值。
关键词:SPI FlashFPGA
现代硬件设计规模逐渐增大,单个程序功能越来越复杂,当把多个功能复杂的程序集成到一个FPGA上实现时,由于各个程序的数据通路及所占用的资源可能冲突,使得FPGA控制模块的结构臃肿,影响了整个系统工作效率。
通过FPGA的多重配置可以有效地精简控制结构的设计,同时可以用逻辑资源较少的FPGA器件实现需要很大资源才能实现的程序。以Virtex5系列开发板和配置存储器SPI FLASH为基础,从硬件电路和软件设计两个方面对多重配置进行分析,给出了多重配置实现的具体步骤,对实现复杂硬件设计工程有的参考价值。
0引言
现代硬件程序设计规模越来越大,功能越来越复杂,当多个应用程序同时在一个硬件平台上实现时,各个程序的资源使用和数据通路可能会冲突,这增加了控制电路设计的复杂程度,给开发人员增加了工作量和开发难度。通过多重配置,可以将多个应用程序根据需要分时加载到FPGA中,不仅精简了电路设计,而且使系统更加灵活。FPGA多重配置的特点可以让特定条件下的用户选择片上资源不多的FPGA去实现需要很多资源FPGA才能实现的功能,这大大降低了开发费用,同时提高了FPGA的利用率。
Xilinx公司Virtex5系列的FPGA具有多重配置的特性,允许用户在不掉电重启的情况下,根据不同时刻的需求,可以从FLASH中贮存的多个比特文件选择加载其中的一个,实现系统功能的变换。
1总体设计
当FPGA完成上电自动加载初始化的比特流后,可以通过触发FPGA内部的多重启动事件使得FPGA从外部配置存储器(SPI FLASH)指定的地址自动下载一个新的比特流来重新配置。FPGA的多重配置可以通过多种方式来实现。本文采用的是基于ICAP核的状态机编码方式。通过调用Xilinx自带的ICAP核,编写状态机按照的指令流程对ICAP核进行不断的配置,可以控制FPGA重新配置。这种方式可以在源代码中加很多注释,让后来的开发者很清楚地明白ICAP核指令流顺序,以及多重配置地址计算方法,是一种简单实用的实现方法。
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1494-0005 MULTI LOOP PROCESSOR
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1540-0009 OI PROCESSOR
RS3 01984-1540-0009 OI PROCESSOR
RS3 01984-1547-0001 OI NV RAM
RS3 01984-1594-0002 COORDINATOR PROCESSOR II
RS3 01984-1598-0001 4 MEG NV BUBBLE MEM
RS3 01984-1598-0001 4 MEG NV BUBBLE MEM
RS3 01984-1632-1000 OPTIONS KEYBOARD
RS3 01984-1632-2000 TWO OPTIONS KEYBOARD
RS3 01984-1975-0001 TRACKBALL KEYBOARD
RS3 01984-1984-0001 POWER SUPPLY
RS3 01984-1984-0003 POWER SUPPLY
RS3 01984-2137-0008 OI PROCESSOR 1 MEG
RS3 01984-2298-0001 POWER SUPPLY
RS3 01984-2298-0001 POWER SUPPLY
RS3 01984-2298-0001 POWER SUPPLY
RS3 01984-2347-0021 NV MEMORY
RS3 01984-2347-0021 NV MEMORY
RS3 01984-2386-0005 KEYBOARD
RS3 01984-2386-0005 KEYBOARD
RS3 01984-2402-0001 INTERFACE R5422-R5232
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2500-0005 CONTROLLER SERIAL 1/O
RS3 01984-2503-0001 OI GRAPHICS VIDEO GEN
RS3 01984-2503-0001 OI GRAPHICS VIDEO GEN
RS3 01984-2503-0001 OI GRAPHICS VIDEO GEN
RS3 01984-2512-0003 ANALOG MARSHALLING PANEL
RS3 01984-2512-0003 ANALOG MARSHALLING PANEL
RS3 01984-2512-0003 ANALOG MARSHALLING PANEL
RS3 01984-2518-0002 FIC 4-20 mA 2In/1Out
RS3 01984-2518-0002 FIC 4-20 mA 2In/1Out
RS3 01984-2518-0002 FIC 4-20 mA 2In/1Out
RS3 01984-2518-0002 FIC 4-20 mA 2In/1Out
RS3 01984-2526-0002 SIO RACK MINT CD CAGE
RS3 01984-2543-0001 COMMUNICATIONS CONNECT III
RS3 01984-2543-0001 COMMUNICATIONS CONNECT III
RS3 01984-2543-0001 COMMUNICATIONS CONNECT III
RS3 01984-2543-0001 COMUNICATIONS CONECT II
RS3 01984-2543-0001 COMUNICATIONS CONECT II
RS3 01984-2546-0002 PULSE I/O
RS3 01984-2546-0002 PULSE I/O
RS3 01984-2546-0002 PULSE I/O
RS3 01984-2551-0001 OUTPUT BYPASS CARD
RS3 01984-2597-0001 ANALOG I/O CAGE MOTHERBOARD
RS3 01984-2597-0001 ANALOG I/O CAGE MOTHERBOARD
RS3 01984-2597-0001 ANALOG I/O CAGE MOTHERBOARD
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2759-0008 OI PROCESSOR III
RS3 01984-2837-0001 FLOOPY DRIVE
RS3 01984-2871-0004 MAIN KEYBOARD
RS3 01984-3100-0001R QUANTUM HARD DRIVE
RS3 01984-3202-0010 OI PROSSESOR V
RS3 01984-3202-0010 OI PROSSESOR V
RS3 01984-3202-0010 OI PROSSESOR V
RS3 01984-3202-0010 OI PROSSESOR V
RS3 01984-3222-0004 KEYBOARD INT.VIDEO ISOLATOR
RS3 01984-3222-0004 KEYBOARD INT.VIDEO ISOLATOR
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-353-0001
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI PURPOSE CONTROLLER II