ASIC(共8篇)
ASIC 篇1
项目地点:美国纽约
项目面积:1,100平方英尺
摄影:Augusta Quirk
Location:51 West 42nd St.Manhattan,NY
Project Size:1,100 Square Feet
Final Photo Credit:Augusta Quirk
ASICS品牌拥有先进的服装生产线,VERDEGO为它们设计了位于纽约的第一家独立店铺。店铺坐落于纽约的布莱恩特公园内,是个充满活力的社区中心,为纽约马拉松比赛等大型体育活动项目提供全面服务。ASICS是一家日本公司,他们希望这家拥有1,100平方英尺的店面设计时尚别致,根据他们的需求,VERDEGO以简约明了的风格作回应,以迎合该品牌的美学理念。
VERDEGO从品牌logo明亮的色彩中获得启示。设计师使用与logo上相同的,具有强烈穿透感的蓝色作为雕塑墙的主色,装饰商店的主墙面。墙的另一面是一间拥有3D设备和其他多种仪器的检测室,能够通过检测分析每一位客人的最佳锻炼方式。机器通过对客人的足迹、步幅和姿态进行收集和记录,从而得出最佳的锻炼方案。为了突显房间的特殊技术,三维投影的脚印被用作壁纸。许多开放空间、白墙和透明玻璃墙面以及自然光等元素令商店拥有开放和多面的视野。
一些著名的运动员和ASIC的代言人如Andy Potts、Ryan Hall和Lolo Jones等,经常受邀来此签售T恤,这种公众活动令社区得到更多关注。
VERDEGO has designed the first ASICS stand-alone store in the U.S.for its technologically advanced shoes and clothing line.The store is strategically located across from Bryant Park in New York City and is a vibrant center for the running community with the New York Marathon as one of the biggest races it serves.
ASICS,a Japanese company,wanted a sleek,stand out design for the intimate1100 square foot space.VERDEGO's response was a clean,sharp and minimalistic design that spoke to the companies'brand and aesthetic.
VERDEGO took its cue from the brand–reflecting the logo's intense color.The designers used the same deep penetrating blue of the logo on the sculptural wall that adorns the main wall of the store.On the other side of the wall is the Foot ID room where a 3D scanning machine and treadmill delivers a state of the art foot ID system analyzing a customer The machines gather information about a customer's foot,stride and gait to get a fit that delivers maximize performance.'s personal running style.To highlight the room's specialized technology,a 3D projection of a foot was used as wallpaper.Lots of open space,white and transparent glass walls and natural light give the small store a porous quality with high visibility to the street.
Star athletes and ASICS shoe wearers,such as Andy Potts,Ryan Hall and Lolo Jones are often invited to sign posters and shirts,which help support and give attention to the running community.
ASIC 篇2
2. If(a==1’b1)
$display(“breakpoint1”);
Else
$display(“breakpoint2”);
If(b===1’bz)
$display(“breakpoint3”);
Else
$display(“breakpoint4”);
如果a.b的输入都为X,请分析结果是什么。
ASIC 篇3
随着改革开放的深入, 社会治安已经成为人们关注的焦点, 防盗意识也已经逐步深入人心, 防盗报警电路的设计与研究也成为人们关心的问题。本文介绍在Tanner Pro 平台上设计具有防盗报警功能的专用集成电路。专用集成电路具有功能稳定, 成本低等特点。
Tanner Pro是Tanner Research公司的一种优秀的IC设计工具。Tanner Pro最大的特点是成本低, 设备要求不高, 除了可以在工作站、Unix系统下运行外, 还可以在任何个人PC, Windows操作系统下使用。Tanner Pro具有强大的IC设计、模拟验证、版图编辑和自动布局布线等功能, 而且图形处理速度快、编辑功能强、便于学习、使用方便, 既适用于高校进行相关的教学和科研, 也适用于IC设计企业[1]。
整个设计工具大体上可以归纳为两大部分:以S-Edit为核心的集成电路设计、模拟、验证模块和以L-Edit为核心的集成电路版图编辑与自动布图布线模块[2]。具体包括S-Edit, T-Spice, W-Edit, L-Edit与LVS, 各软件的主要功能如表1所示:
1利用Tanner Pro进行数字ASIC设计的流程
图1是使用Tanner Pro进行一个完整的集成电路设计的流程。先用S-Edit编辑出将要设计的电路图, 再将该电路图输出成SPICE文件, 用T-Spice模拟结果, 如果模拟结果有错误, 再回到S-Edit检查电路图, 如果T-Spice模拟结果无错误, 则用L-Edit进行布局图设计。用L-Edit进行布局图设计后要用DRC做设计规则检查, 如果违反设计规则, 则修改布局图, 直到设计规则检查无错误为止。将验证过的布局图转化为SPICE文件, 再利用T-Spice模拟, 若有错误, 再回到L-Edit修改布局图。最后利用LVS将电路图输出的SPICE文件与布局图转化的SPICE的文件进行对比, 若对比结果不相等, 则回去修正L-Edit或者S-Edit的图。直到验证无错误后, 将L-Edit设计好的布局图输出成GDSII文件类型[3]。
2用Tanner Pro 设计防盗报警电路
2.1用S-Edit设计防盗报警电路原理图
S-Edit电路图编辑器用来绘制电路图, S-Edit电路图编辑器绘制的电路图是有等级结构的电路图。这种电路图是由模块组成。高等级的电路图模块由低等级模块的例化体组成[4]。
设计防盗报警电路, 调用spice元件库中的NMOS、PMOS, 用NMOS和PMOS搭建电路, 如图2所示。电路的原理是当在正常状态下, 反相器1输出低电平, 反相器2输出高电平, 反相器3输出低电平, 故或非门1输出高电平, 该高电平封锁了后面的电路, 使输出为低电平, 电路不报警。当信号输入为低电平时, 或非门1输出低电平, 使电路输出为高电平, 电路报警。
S-Edit电路图编辑器可以把当前模块的电路图转化为不同的网表。这些网表主要是用于T-Spice电路模拟器的SPICE网表, 用于L-Edit版图编辑器中的标准单元自动布图布线的TPR网表, VHDL网表, NeTran网表, 以及EDIF网表。
2.2用T-Spice对防盗报警电路进行模拟仿真
得到电路原理图后, 为确保电路原理图的功能正确, 需要用T-Spice电路图模拟器对电路进行仿真。仿真之前, 要把电路图转化为SPICE网表 (*.sp) 。SPICE网表描述了电路元器件的工艺参数和连接关系。由于不同的流程有不同的特性, 在仿真之前必须引入MOS元件的模型文件, 此模型文件包括电容电阻系数等数据, 以供T-Spice模拟之用。此外, 还要设定各种仿真必须的参数[5]。图3是用W-Edit观察到的防盗报警电路的仿真波形图。通过波形图看到设计的防盗报警电路完全符合和满足预定的功能。
2.3用L-Edit对防盗报警电路进行版图设计
L-Edit版图编辑器是一种全功能、高性能、会话式的集成电路版图设计工具, 能方便和快速地产生版图, 支持完全等级结构设计, 在我国已有很高的知名度。L-Edit是全定制版图编辑器, 有直观的用户界面, 有利于高效地手工绘图。在L-Edit中还集成了五个子模块:DRC (设计规则检查) , SPR (标准单布图布线) , Extract (版图提取) , Cross Section Viewer (剖面观察器) , 以及UPI (用户编程界面) [6]。
在电路功能仿真正确之后, 可以打开L-Edit编辑器, 用全定制方法绘制版图。根据设定文件规则, 如格点设定、图层设定等。选定图层, 绘制阱、有源区、多晶硅、有源区注入、接触孔、金属线Ⅰ、通孔、金属线Ⅱ。应用DRC检查设计规则, 以保证版图满足设计规则。
图4是防盗报警电路的版图。使用的是N阱CMOS 2 um工艺。
2.4用LVS进行版图验证
LVS (版图-电路图比较器) 是一种网表比较工具, 主要用来检查版图的正确性。广义上讲, LVS可以比较两个SPICE网表, 判别它们是否描述同一个电路。通常, 一张SPICE网表是用L-Edit的Extract (版图提取器) 从版图提取中产生的, 另一张网表是用S-Edit的网表输出功能从同一设计的电路图产生。如果S-Edit中的电路图已通过验证, 利用LVS, 后一张网表可以作为判别前一张网表正确性的标准, 实现线路图与版图的比较。当两个网表不一致时, LVS还能帮助确认
和改正版图中错误。这是LVS的最大用处。同时, 若通过验证, 则说明设计成功。
3结束语
本文介绍了在IC设计软件Tanner Pro平台上设计一种防盗报警电路。采用“自底向上”的原理图输入设计方法对电路进行设计, 并对电路进行了功能仿真, 采用N阱CMOS 2 um 工艺对电路进行了版图设计。
参考文献
[1]陈莹梅.模拟集成电路设计精粹[M].北京:清华大学出版社, 2008.
[2]路而红.专用集成电路设计与电子设计自动化[M].北京:清华大学出版社, 2004.
[3]孙润.TANNER集成电路设计教材[M].北京:北京希望电子出版社, 2002.
[4]廖裕评.Tanner Pro集成电路设计与布局实战指导[M].北京:科学出版社, 2007.
[5]何乐年.模拟集成电路设计与仿真[M].北京:科学出版社, 2008.
ASIC 篇4
关键词:OSD(On Screen Display),ASIC,用户自定义,视频处理
0 引言
在屏显示(On Screen Display,OSD)是指在电视机或监视器的屏幕上叠加字符或图形,面向用户提供友好的人机交互界面的技术。随着各种平板电视的不断上市以及视频监控系统在银行、交通、治安等领域发挥越来越重要的作用,设计一个使用简单,功能丰富的OSD系统是非常有应用前景的[1,2]。
笔者提出了一种可应用于DVD、高端数字电视和监视器的ASIC芯片中的OSD系统设计。该OSD系统集成于芯片之中,使用灵活,功能丰富,具有如下主要特点:
1) 可随时调整OSD图像在屏幕上的显示位置。
2) OSD图像可在水平和垂直方向实现非线性的进行放大。
3) OSD图像的行数和列数可自定义。
4) 支持1/2/4BPP(Bit Per Pixel)字符或图形的同时显示。
5) 单个字符或图形宽和高的加倍。
6) 支持32种显示颜色,可在1个4BPP字符或图形上同时显示16种颜色。
7) 1/2/4BPP字符或图形多种形式的透明和闪烁效果,且可自定义闪烁频率。
8) 字符或图形在左右方向显示阴影,且阴影颜色可自定义。
9) 字符或图形透明效果。
1 OSD架构设计
该OSD系统的结构图如图1所示。它是1个可编程的模块,上电时必须用微处理器(MCU)通过I2C总线设置一些OSD的全局显示信息,如OSD在屏幕上显示的位置,是否显示阴影,字符存储SRAM中1/2/4BPP字符或图像存储的位置等。该OSD系统可以分为4个主要的模块,分别是1)OSD SRAM控制模块,大小为1k×32 bit和1k× 64bit的两个SRAM分别存储显示属性和字符图形点阵信息,系统初始化时,控制器对I2C总线送来的显示属性和字符数据进行编码后写到相应的SRAM中,初始化后,它将读取SRAM中的显示属性和字符信息并送入下一模块。2)OSD显示属性控制模块,该控制器根据显示属性对相应的字符图形进行处理,产生闪烁、透明、阴影、字符图形宽高的倍增等效果,最后BPP值n(n=1,2,4)根据颜色查找表选择属性通过1个可编程的颜色查找表输出RGB颜色信息。3)OSD图像放大模块,OSD放大器根据不同的放大率给出垂直和水平方向的使能信号,这两个使能信号送给SRAM控制器调整SRAM控制器读取SRAM中显示属性和字符图形数据的速度以实现OSD画面的放大。4)视频图像混合模块,该模块实现视频信息与OSD信息的α混合叠加输出。
2 片内SRAM控制
OSD系统内建了属性SRAM和字符点阵SRAM,大小分别为1k×32bit和1k×64bit。OSD片内SRAM控制电路最终将属性控制信息和字符点阵信息送给下一模块。
2.1 属性SRAM
属性SRAM中每个地址内容的低10位是需要显示的字符或图形在字符点阵SRAM中的索引信息FONT_INDEX,高10位是1BPP字符点阵的背景和前景颜色索引信息,其他位是颜色查找表选择,字符BPP选择,字符宽度和高度倍增使能等显示属性。由于SRAM大小的原因,最多可以在屏幕上显示1 024个字符或图形。显示字符的地址计算公式为
Display _Char_Addr=j×COLUMN+i (1)
式中:COLUMN是OSD每行显示的字符或图形数目,其大小都可由用户可自定义,(i,j)代表字符或图形的坐标位置。如图2所示,以1个字符行列数为40×25的OSD为例,字符(3,7)的显示地址根据公式(1)得到7×40+7=283, 即属性SRAM中地址ADDR[283]中存储内容对应的字符或图形将显示在OSD坐标(3,7)这个位置。
2.2 字符点阵SRAM
字符点阵SRAM中存放的是字符和图形的点阵信息,用户可根据实际需要设计自己的点阵信息,最大支持宽高比为16×16的字符点阵,即点阵的宽为(16×n)bit,高也为(16×n)bit(n=1,2,4),一般只需要在系统开机时,通过I2C总线写入SRAM一次即可。为了让OSD显示丰富的字符或图形以提供更加友好的人机交互界面,字符点阵SRAM中有必要同时存储1/2/4BPP字符点阵,于是将SRAM从低位到高位依次分为3个存储部分,并分别存储1/2/4BPP字符点阵,这3部分存储区域的起始指针可自定义,从而可以根据需要而改变SRAM中存储的1/2/4BPP字符点阵的数量。
假定设置1/2/4BPP字符点阵存储区起始指针分别为ADDR[0],ADDR[512],ADDR[768],存放16×16字符点阵。一般做法是,无论BPP值n为多少,SRAM每个地址中都只能存放1个字符行,这样在1BPP区域,每个地址的低16bit存放字符行,高48bit空闲;在2BPP区域,每个地址的低32 bit存放字符行,高32bit空闲;在4BPP区域,整个地址都存放字符行。显然,只有4BPP区域SRAM使用率达到100%,其他2个区域只能达到25%和50%,而在OSD实际应用中要使用到的1BPP字符或图形的数量很多,这样在不增加SRAM开销的情况下,若要显示1个内容丰富的OSD图像,上述字符存储结构有时很难满足其要求。
本文OSD使用改进的字符存储结构,如图3所示。Line表示点阵的行内容,在1BPP区,将SRAM地址内容分为4段,每段16bit,每段存放1BPP点阵的1行,这样1个16×16的1BPP点阵只需用到4个地址,而按照一般的存储方法需要16个地址。2BPP区点阵存放方式与1BPP区类似,将每个地址内容分为2段,每段32bit,每段存放2BPP点阵的1行,这样1个16×16的2BPP点阵只需要用到8个地址,而按照一般的存储方法需要16个地址。4BPP区字符存放方式不变。
设点阵宽为M(M≤16-1),高为N(N≤16-1),在全局属性中分别有4位寄存器设置M和N的值,内部点阵行数4bit计数器CNT(CNT≤N)。对于1bpp点阵,则该点阵占用的地址数为N[3:2]+1,要显示的字符行数据在点阵中的地址为CNT[3:2],在SRAM中地址的的计算公式为
ADDR=(N[3:2]+1)×FONT_INDEX+CNT[3:2] (2)
CNT[1:0]是数据所在的SRAM地址中的段地址,于是字符行数据地址为
LINE_ADDR=ADDR[CNT[1:0]] (3)
对于2BPP点阵,点阵占用的地址数为N[3:1]+1,要显示的字符行数据在点阵中的地址为CNT[3:1],其在SRAM中地址的计算公式为
ADDR=(N[3:1]+1)×FONT_INDEX+CNT[3:1] (4)
CNT[0]是数据所在的SRAM地址中的段地址,于是字符行数据地址为
LINE_ADDR=ADDR[CNT[0]] (5)
对于4BPP点阵,字符行数据地址为
LINE_ADDR=(N+1)×FONT_INDEX+CNT (6)
通过上述寻址方式,对于16×16点阵,SRAM利用率为100%;对于其他格式点阵,SRAM利用率也大大高于一般存储格式。在存放相同数量字符或图形时,改进的存储结构需要的SRAM面积更小,从而降低了硬件开销,节约成本。
3 OSD逻辑控制部分
OSD逻辑控制电路根据视频行同步和场同步信号,在字符属性和全局属性控制下对单个字符或所有字符进行处理,最后将OSD图像与视频混合叠加。
3.1 字符属性控制
字符属性对单个字符有效,如该字符具有双倍宽度属性,则逻辑控制电路对该字符点阵水平方向上的每个像素加倍;如具有双倍高度属性,则逻辑控制电路对该字符点阵垂直方向上的每个像素加倍;如具有闪烁属性,则逻辑控制电路通过显示该字符的开关信号使其在屏幕上有闪烁效果;如具有透明属性,逻辑控制电路将在该字符显示区域显示视频信号,字符还具有颜色查找表CLUT选择等诸多字符属性。单个字符可以同时具有这些属性,如1个字符或图形同时具有双倍宽度和高度属性,OSD图像上该字符的大小将是其他一般字符的4倍。
3.2 全局属性控制
全局属性对OSD中所有字符有效,如是否产生字符阴影,OSD图像在屏幕上位置,CLUT中颜色的设置,OSD图像的非线性放大等等。如图1中所示,非线性放大控制电路反馈水平方向和垂直方向上的控制信号给SRAM控制器,SRAM控制器根据这2个信号调整读取SRAM中数据的速度从而实现字符的非线性放大效果。这在实际应用中非常有意义,它让用户可以任意调整OSD图像的大小,满足不同要求。格式为12×10字符A水平放大1.33倍,垂直放大1.5倍的示意图如图4所示。
3.3 视频图像混合
视频图像混合模块采用α混合(Alpha Blending)技术对视频和OSD图像按照α值混合叠加,通过设置不同的α值,可以实现不同透明程度的叠加[3]。该模块采用单一的α通道,简化交叉过渡运算,节约了硬件资源,其硬件实现如图5所示。
该OSD系统具有非常丰富的全局属性和字符属性资源,通过设置合适的属性,可以显示出内容丰富的OSD图像。
4 FPGA平台验证
本设计基于Xilinx公司ISE 12.1进行验证,使用FPGA芯片为Virtex-5 系列XC5VLX50T。利用该平台得到的效果图如图6所示,其α值为75%,行列数为20×12,可以看到OSD图像正常显示,达到预期效果。
5 结束语
本文介绍了一款数字视频ASIC芯片中OSD系统的实现方案,该OSD系统使用灵活,功能丰富,图像可非线性放大,支持1/2/4BPP字符点阵显示,使用改进的字符点阵存储结构,大大提高了片内SRAM利用率,减少了硬件开销,从而降低实现成本。
本设计的RTL Coding 采用Verilog HDL,使用Verdi进行Debug工作,使用VCS进行功能及时序仿真,使用Design Complier进行综合生产门级网表,最后在UMC 0.18μm CMOS工艺下流片成功。
参考文献
[1]张贻雄,刘鹏,王维东,等.媒体处理系统芯片中的OSD单元设计及应用[J].电视技术,2005,43(8):43-45.
[2]罗韬,姚素英,史再峰,等.视频芯片中的OSD核的设计及FPGA的实现[J].吉林大学学报:工学版,2008,38(6):1452-1457.
[3]KEITH J.Video demystified:A handbook for the digital engineer[M].5th edition.[S.l.]:Newnes,2007.
HDB3编码器ASIC的设计 篇5
数字通信的主要目的就是准确无误地传输信道中所携带的信息。数字通信系统中,发送端把数字信号变成适合信道的基带信号(基带调制),然后经过信道进行传输;接收端则把信道中的基带信号还原成原始的数字信号(基带解调),在这个调制解调的过程中首要的问题就是码型的选择问题[1]。HDB3编码具有很多优点:其一,它很容易在其相应基带信号中提取定时信号;其二,HDB3码无直流成分和很小的低频成分;其三,传输效率高。因此,HDB3码非常适合在基带信道中进行传输,并有必要进行HDB3编码器芯片的设计。
1 HDB3编码器ASIC的设计流程
首先采用Verilog HDL进行前端设计,在软件QuartusⅡ上编译仿真;然后进行综合、门电路仿真和硬件验证;最后进行后端版图设计[2,3]。
2 HDB3编码器的硬件描述语言设计思路
HDB3编码原理:首先将信息代码变换成交替反转码(AMI码,AMI码的编码规则:将代码中的“0”仍然变换成传输码中的“0”,而把“1”交替地变换为传输码中的+1,-1,+1,-1,…),然后来检查交替反转码中的连“0”情况。假如在该串码型中出现了4个或者4个以上连“0”时,将每4个连“0”段的第4个“0”替换成一个破坏符号“V”,该破坏码的极性与该串码型中前一非“0”符号同极性。为了保证插入破坏符号后的序列不会破坏,将相邻V符号极性交替出现。因此当两个相邻的V符号间有偶数个非“0”符号时,就要将该小段中第1个“0”变成“+B”或者“-B”,B符号的极性与前一非“0”符号相反,后面非“0”符号再交替变化[4]。在单双极性变换时,必须要区分“+1”,“-1”,“+V”,“-V”,“+B”,“-B”,“0”,因此用一串二进制来表示[5],具体表示如表1所示。
该HDB3编码器由插入“V”模块、插入“B”模块和“V”码极性纠正模块组成。
2.1 插入“V”模块
该模块功能是将信息代码转换成正负交替的码型[6],同时将每4个连“0”段的第4个“0”替换成“V”。首先判断输入的码型是“0”或“1”,如果是“0”,每接收到一次,则让一个两位的计数器开始加“1”。为了保证计数的是4个连“0”,当输入的编码串中没有出现4个连“0”而出现了“1”时,两位计数器的计数初值重新清“0”。假如出现“0000”,还要判断前一非“0”符号的极型,目的就是为了让第4个“0”替换成与前一非“0”符号相同极性的破坏码(V);如果输入是“1”,只需判断前一非“0”符号是“+”还是“-”,比如说,前一非“0”符号为“+”,那么此次的“1”变为“-1”输出,同时让符号标志位变为“-”状态,同理,前一非“0”符号为“-”,输出结果将是“+1”,符号标志将变为“+”。设计流程见图1,该模块门电路见图2。
2.2 插入“B”模块
信息代码经过上级模块(插入“V”模块)以后,输出的代码将是极性正负交替的码型[7]。插入“B”模块的功能是:当两个连续的“V”之间有偶数个“1”时,要将该小段中第一个“0”替换成“B”,其符号与前一非“0”符号相反;当两个连续的“V”间有奇数个“1”时,则无须替换。本模块的设计精髓是:设计成可综合的状态机,利用状态机的方法将信息代码编成HDB3的码。此设计共5个状态,并且将插入的破坏码“B”的极性记录下来,以便下级模块进行“V”码极性的纠正。在第一个状态中,如果接到的数据是“+V”或“-V”,信息代码原样输出,分别转移到第2、第3个状态;如果是其他符号的数据,信息代码也原样输出,回到第一个状态。在第二个状态中,当有非“+1”符号输入时,信息代码原样输出,回到第二个状态;当有“+1”输入时,说明两个相邻的“V”之间有偶数个“1”,转移到第4个状态。在第四个状态中,当有“0”输入时,则让此刻的“0”替换成“-B”,回到第一个状态,重新开始判断两个连续的“V”之间是否有偶数个“1”;当有非“0”符号输入时,回到第二个状态。第三、第五个状态工作方式与以上类似[8]。状态转移图见图3,模块门电路见图4。
2.3“V”码极性纠正模块
由于插入“B”模块的存在,使得“V”码的极性与前一非“0”符号的极性不能保持一致。因此,需要加一个“V”码极性纠正模块,在该模块中,有两个数据输入端,一个是信息代码,另外一个是记录“B”码极性的标志。当标志为“01”和“11”时,分别表示此刻插入“B”码极性是“-”和“+”。设计思路:当标志是“01”,且紧接着“B”码后的第一个“V”码极性是“+”时,就让“+V”替换成“-V”输出,同理,当标志是“11”,且紧接着“B”码后的第一个“V”码极性是“-”时,就让“-V”替换成“+V”输出,其他的状态都保持原样输出。该模块门级电路见图5。
3 HDB3编码器仿真结果分析
仿真结果见图6,当输入的原始信息代码串“10101100000110000100001100001100111000011110000”经过插入“V”模块后,原始的信息代码串被转换成正负交替的极性码(其中“V”码除外,因为“V”码的极性和前一非“0”码的极性相同),输出信号codeoutv为:“60206200030620003600072600072600262000362620003”,并作为插入“B”模块的输入信号,其输出信号为codeoutb,根据要求将对该串信息代码插入破坏码(“B”),在插入破坏码后,使得“V”码的极性不符合HDB3编码的规则,因此在该模块中增加了“B”码极性的标志输出,该标志在“V”码极性纠正模块中将codeoutb信息代码的“V”码极性进行纠正,最后输出端codeout的输出结果为:“60206200030625007600072610032610262000362625007”。
4 结语
该HDB3编码芯片的设计采用了优化技术和巧妙的逻辑电路设计,通过仿真和硬件验证[9],它可以有效消除传输信号中的直流成分和很小的低频成分,实现了基带信号在基带信道中直接传输与提取,并能很好地提取定时信号。最后采用0.25μm的硅栅工艺绘制版图[10],很大程度上减小了版图面积,且工艺先进、性能稳定,芯片可广泛应用于数字通信领域。
参考文献
[1]樊昌信.通信原理[M].北京:国防工业出版社,2002.
[2]夏宇闻,胡燕祥,刁岚松.Verilog HDL数字设计与综合[M].北京:电子工业出版社,2004.
[3]包淑萍,曾宪武.基于DSP技术的多功能电子测量仪的设计与实现[J].现代电子技术,2007,30(8):1-3.
[4]王晓聪,何永泰.基于FPGA的HDB3码编码器优化设计与分析[J].现代电子技术,2011,34(24):146-148.
[5]张巧文,朱仲杰,梁丰.HDB3编码器的优化设计与实现[J].西南交通大学学报,2008,43(1):25-28.
[6][美]BHASKER J.Verilog HDL综合实用教程[M].北京:清华大学出版社,2004.
[7]朱勒为,唐宁,赵明剑.利用FPGA实现HDB3编解码功能[J].电子设计工程,2009,17(12):76-79.
[8]夏宇闻.Verilog 数字系统设计教程[M].北京:北京航空航天大学出版社,2005.
[9]段吉海,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计[M].北京:电子工业出版社,2009.
ASIC后端设计中的时钟树综合 篇6
在大规模高性能的ASIC设计中,对时钟偏移(Clock Skew)的要求越来越严格,时钟偏移是限制系统时钟频率的主要因素。而时钟树综合又是减小时钟偏移的有效途径,因此它是ASIC后端设计中最重要的环节之一[1,2]。本文以基于SOC Encounter,采用SMIC 0.18 μm工艺进行的FFT处理器的版图设计为例,提出在设计过程中如何减小时钟偏移,结合手动优化帮助工具设计出更好的时钟树。
1 时钟偏移产生的原因分析
同一时钟源到达各个同步单元的最大时间差称作时钟偏移[3]。产生时钟偏移的原因有:时钟源到各个时钟端点的路径长度不同;各个端点负载不同;在时钟网中插入的缓冲器不同等。时钟偏差过大会引起同步电路功能混乱。
在图1中,假设CLK到达reg1和reg2的时间差最大,为dskew,组合逻辑C的延时为dC ,寄存器的延时为d ,其建立时间约束为dsetup ,保持时间为dhold ,时钟周期为T。满足建立时间的要求是在CLK2跳变前的dsetup时间,reg2上D端的数据应该稳定,考虑最坏情况reg1比reg2晚dskew,这时满足的时间关系应该是:
满足保持时间的要求是: 在CLK2 跳变后的dhold时间内,reg2上D端的数据必须保持稳定,考虑最坏情况reg1比reg2早dskew,这时满足的时间关系应该是:
由此可见,时钟偏移对电路速度和时钟频率的限制是很大的,而寄存器的保持时间、建立时间和自身的延时,都是与器件单元本身的结构和性质有关,依赖于工艺的改进来进一步减小,所以减小skew成为后端设计重要内容,也是提高电路速度的关键[4]。
2 SOC Encounter的时钟树综合
SOC Encounter的时钟树综合在完成布局之后进行,可以采用手动模式和自动模式。手动模式能控制时钟树的层次、buffer的数目和每层加入buffer的类型。自动模式根据时钟树定义文件自动决定时钟树的层次和buffer的数目。时钟树综合从外部时钟输入端口自动遍历整个时钟树,遍历完成后加入buffer用来平衡时钟树[5]。SOC Encounter的时钟树综合流程如图2所示。
2.1 布局阶段对时序的优化考虑
布局的好坏直接影响到时序的好坏。本设计采用时序驱动布局,时序驱动布局是基于连续收敛引擎而设计的,工具自动的寻找一些最关键路径,将关键路径上的单元放得很近,以减小连线长度来减小关键路径时延,平衡其setup时间约束,预先为这些关键路径留出足够的布线空间,提高关键信号线的可布通性[6,7]。同时,为了减少拥塞度,对布局时的最大密度设置为70%,限制布局密度。时序驱动布局采用setPlaceMode –timingDriven命令设置布局模式,placeDesign命令执行布局。
如果只是依赖工具的时序驱动布局是不够的,为了尽量减小时钟偏移(Skew),采取的策略是,在时序驱动布局的基础上,进行手动的布局调整,根据时钟的不同,将各时钟控制的寄存器摆在靠近时钟源(Clock-source)差不多远的位置。这样,同一时钟到达各寄存器的时间差就不会太大,有利于减少插入buffer的数量,也有利于Skew的减小。
2.2 时钟树综合时的特殊处理
在时钟树综合之前,需要通过时钟树约束文件来设置综合需要用到的buffer类型、时钟偏移的目标值MaxSkew、最大时延MaxDelay、最小时延MinDelay、最大扇出MaxFanout、时钟树布线规则等。本设计选用驱动能力为中间值的buffer类型来做时钟树综合,因为驱动能力大的buffer,面积也大,如果插入这种buffer太多,会对芯片的功耗和面积产生影响,而且这种buffer对于上一级也意味着更大的负载;驱动能力太小的buffer虽然面积小点,但是会增加时钟级数,产生的延时却是很大的,所以buffer的选择一定要适当,本设计在选用buffer时,将驱动能力最大的BUFHD20X和驱动能力最小的BUFHDLX去掉不选用。
对于Skew要求比较严格的设计,可以将时钟偏移目标值MaxSkew设置尽量小,工具在综合时会尽量的将Skew优化到接近到该目标值[8]。但一般设计中,只要Skew能满足要求,就不要过分的将该值设小,因为工具为了接近该目标值会插入大量的buffer,从而占用太多的面积和太多功耗。因此,本设计选用MaxSkew的适当值为100 ps。
时钟树布线规则是可以通过手动设置的,为了让时序路径的布线降低功耗,减小线路的延时,一般将时序路径的布线宽度和间距都设置的比默认值大,本设计采取一般信号线的两倍宽度和间距来布时钟信号线。而且在布线的时候,采取时钟树优先布线的策略,充分保证时钟树路径的布通。经过encounter工具自动CTS后的时钟树分布图如图3所示。
2.3 时钟树的手动优化
工具自动的时钟树综合总是会有一些skew没有满足设计要求,工具自动插入的一些buffer也不一定都合理,一般情况下,encounter自动综合产生的时钟树是不满足要求的,在经过了时序分析后要进行必要的修复优化。总的原则就是想办法平衡各线路的延时,一般的优化途径有以下一些:
(1) 在时钟信号源(Clock Source)处手动添加驱动能力很大的drive cell,因为时钟树一般扇出很大,负载很大,所以在时钟源点处需要驱动能力大的门单元,更大驱动能力的门单元可以明显减少延时[9,10]。
(2) 替换(Re_sizing)驱动能力不一样的单元,尤其是buffer单元。时钟树综合完成后,经过仔细的时序分析后,根据时序分析结果报告,分析Skew违规原因,找出导致Skew违规的路径,根据延时情况来替换一些驱动能力不同的单元,如buffer等,使其延时情况与其他时钟信号线相平衡,从而达到减小Skew的目的。
(3) 添加buffer。互连线的延时与连线长度的平方成正比,所以插入buffer可以将长的关键路径分成较小的连线,可以有效地减小互连线的延时。插入的buffer的驱动能力的大小靠经验估计,插入后做时序分析,然后再做re_sizing,直到满足延时要求。
经过encounter自动时钟树综合后,查看其CTS时序报告,如图4所示,发现时钟clk_pad的最大偏移值达到了152.4 ps,这样与目标值还有很大差距。经过timing Debug跟踪时钟信号,如图5所示,从中找出一些Skew较大的线路,如从fft4442_inst/CT/M3_R_reg/Q到fft4442_inst/PEII/pe42_in4_reg_76_/RN的延时太长,达到了27.035 ns,因为这样的线路与其他信号线的延时相差比较大,它们之间的Skew就很容易违规,必须减小它们的延时来减小Skew。
再进一步查看该线路,发现有些单元,如FFDCRHD1X延时达到13.483 ns,HAND2B1HD1X延时达到8.578 ns,INVHDPX也达到了4.209 ns,而且该线路还插入了不少BUFHD1X,由于此类buffer的驱动能力太小,从而导致了该线路的延时过大。于是,采用第二类修复办法:替换(re_sizing)驱动能力不一样的buffer。于是调用Interactive ECO功能,手动将延时太长的单元FFDCRHD1X、HAND2B1HD1X等的尺寸替换为更大的,从而加强其驱动能力,并将部分BUFHD1X替换成BUFHD4X等,再做了PostCTS optimization后,再进行时序分析,这样经过几轮反复的修复,降低了一些线路的延时,终于将时钟CLK的Skew降到了93.3ps,如图6所示,满足了设计要求。从encounter的CTS报告中可以看出,加上有针对性的手动修复之后,对Skew的减小有明显效果。
3 结 语
随着集成电路设计尺寸的减小和芯片运行频率的提高,时钟偏移已经成为影响ASIC芯片性能的关键因素。本文以对FFT处理器芯片的时钟树综合为例,分析了时钟偏移的产生机理及影响,从布局阶段就开始关注时序的优化,进行了一系列的优化设置。经过时序分析证明,采取工具自动综合和手动修复相结合的办法,容易满足设计要求,不仅可以提高综合效率,还可以保证优化的有效性。
摘要:时钟树综合是当今集成电路设计中的重要环节,因此在FFT处理器芯片的版图设计过程中,为了达到良好的布局效果,采用时序驱动布局,同时限制了布局密度;为了使时钟偏移尽可能少,采用了时钟树自动综合和手动修改相结合的优化方法,并提出了关于时钟树约束文件的设置、buffer的选型及手动修改时钟树的策略,最终完成了FFT处理器芯片的时钟树综合并满足了设计要求。
关键词:FFT处理器芯片,布局布线,时钟树综合,时钟偏移
参考文献
[1]周俊.超大规模集成电路的物理设计研究[D].上海:同济大学,2007.
[2]SMITH M J S.专用集成电路[M].虞惠华,译.北京:电子工业出版社,2004.
[3]冀蓉,曾献君,陈亮,等.同步数字系统时钟分布及偏斜补偿技术研究[J].计算机工程与科学,2009,31(3):135-138.
[4]千路,林平分.ASIC后端设计中的时钟偏移以及时钟树综合[J].半导体技术,2008,33(6):527-529.
[5]Cadence.EncounterTMuser guide[M].USA:Cadence De-sign Systems Inc.,2005:325-350.
[6]顾琴,林正浩.用Encounter实现Mesh-Local-Tree结构的时钟设计流程[J].半导体技术,2008,33(7):626-629.
[7]Cadence.EncounterTMtiming closure guide[M].USA:Ca-dence Design Systems Inc.,2006:25-50.
[8]Synopsys.Detailed routing parameter docu-mentation[M].USA:Synopsys,2007.
[9]顾琴,辜建伟,李玉童.在Encounter中实现网格+局部树的时钟设计流程[J].电子设计应用,2008(12):57-59.
ASIC 篇7
1 防火墙的分类
1.1 基于X86体系构架的防火墙
X86架构采用通用CPU和PCI总线接口,具有很高的灵活性和可扩展性,过去一直是防火墙开发的主要平台。虽然很多厂家也把它称之为硬件防火墙,但实际上都是基于X86架构的服务器或工控机。这类防火墙一般运行在经过裁减的操作系统上(通常是Linux或BSD),所有的数据包解析和审查工作都由软件来完成。其产品功能主要由软件实现,可以根据用户的实际需要而做相应调整,增加或减少功能模块,产品比较灵活,功能十分丰富。但是,由于X86本质上是一个通用CPU,没有对网络或者安全进行特殊处理,所以性能不足,做到百兆线速还可以,在实际应用中,尤其在小包情况下,这种结构的千兆防火墙远远达不到千兆的转发速度(64字节包长时,双向转发速率一般为百分之二十以下)。当然,正是由于这个构架出现的较早,其在很多安全厂商手里经过多年的锤炼,稳定性是非常出色,如果对性能要求不高,又对价格比较敏感,那么X86构架的防火墙还是可以选择的。
1.2 基于NP体系构架的防火墙
随着IP网络的快速发展,路由器交换机逐渐从百兆走到了千兆甚至是万兆,对防火墙的转发性能和延迟有了更高要求。这种情况下,NP(网络处理器)技术加入到安全领域,成为较高性能防火墙技术的象征。
NP通过专门的指令集和配套的软件开发系统,提供强大的编程能力,因而便于开发应用,支持可扩展的服务,而且研制周期短,成本较低。
NP网络加速能力非常好,这是它的专长。但是NP弱点也非常明显,NP这个技术从初始设计目的上,是针对路由器进行加速的,它拥有非常好的3层转发加速能力,但是在4-7层的数据处理上,对安全处理上,没有过多考虑。所以现在的多数NP构架的防火墙,主要还要外挂一个高性能CPU进行4-7层处理,这一方面增大了系统成本,另一方面,在实际网络环境下,在比较强的攻击情况下,这种体系构架的NP性能会明显下降。尽管如此,网络处理器能弥补通用CPU架构性能的不足,同时又不需要具备开发基于ASIC技术的防火墙所需要的大量资金和技术积累,最近在国内信息安全厂商中备受关注,成为国内厂商实现高端千兆防火墙的热门选择,所以对于一些对网络安全有一定要求的中小企业来说,选择NP防火墙是最佳的选择,既能兼顾性能还能节约成本。
1.3 基于ASIC体系构架的防火墙
ASIC防火墙通过专门设计的ASIC芯片逻辑进行硬件加速处理。ASIC通过把指令或计算逻辑固化到芯片中,获得了很高的处理能力,因而明显提升了防火墙的性能。ASIC是专用加速芯片,这就如同一张白纸,完全按照设计者的目的去设计硬件电路,优化相应的功能模块,然后固化完成ASIC。这种功能专一和完全硬件电路处理,ASIC不会出现NP这种非通用加速芯片的性能问题,特别是在安全策略复杂,网络攻击频繁的情况下,性能不会下降。但是ASIC也有其弱点,不可编程灵活性非常低。特别是研发一款ASIC的前期投入费用非常的大,开发周期,技术实力都远远超过NP。这也是为什么全世界防火墙厂家,也就几个大公司才有自己的专用ASIC,其他的小防火墙公司更多是直接购买别人的ASIC芯片和知识产权。
随着可编程ASIC的出现,ASIC的弱点也几乎消失。虽然它本质上还是ASIC,拥有和ASIC几乎相同的特性,但是它又不是完全固化的,它只是固化了设计者认为不需要修改的处理单元———如内存控制器、MAC单元、交换单元等,内部预留了很多的可编程模块,可以根据实际情况按需改进。这点上来说,它实际拥有了NP的最重要特性———灵活可变。虽然可编程ASIC芯片依旧对开发者要求很高,需要大投入长周期。但是一旦完成开发后,成本都可以得到比较好的控制,价格几乎和ASIC没有太多差别。
2 防火墙选购中的关键――参数详解
在防火墙的选购中搞懂它的参数意味着选购者能买到一款称心如意的防火墙。
2.1 并发会话数
并发会话连接数指的是防火墙或代理服务器对其业务信息流的处理能力,是防火墙能够同时处理的点对点会话连接的最大数目,它反映防火墙对多个连接的访问控制能力和连接状态跟踪能力。这个参数的大小可以直接影响到防火墙所能支持的最大信息点数。
举例说明,一个并发会话数代表一台机器打开的一个窗口或者一个页面。那么内网中一台机器同时开很多页面,并且聊天工具或者网络游戏同时进行着,那么这一台机器占用的会话数就会有几十到几百不等。内网中同时在线的机器数量越多,需要的会话数就越多。
2.2 每秒新建会话数
假设在第一时间,已经占用了防火墙的全部会话数,在下一秒,就要等待防火墙处理完之前不需要的会话数才能让需要的人继续使用剩余的会话数。那么这个每秒新增会话数就很重要了。如果每秒新增会话数不够的话,剩下的人就要等待有新的会话数出来。那么就会体现为上网速度很慢。
2.3 性能
防火墙的性能对于一个防火墙来说是至关重要的,它决定了每秒钟可能通过防火墙的最大数据流量,以bps为单位。从几十兆到几百兆不等,千兆防火墙还会达到几个G的性能。
2.4 工作模式
目前市面上的防火墙都会具备三种不同的工作模式,路由模式、NAT模式和透明模式。
透明模式时,防火墙过滤通过防火墙的封包,而不会修改数据包包头中的任何源或目的地信息。所有接口运行起来都像是同一网络中的一部分。此时防火墙的作用更像是Layer 2(第2层)交换机或桥接器。在透明模式下,接口的IP地址被设置为0.0.0.0,防火墙对于用户来说是可视或"透明"的。
处于"网络地址转换(NAT)"模式下时,防火墙的作用与Layer 3(第3层)交换机(或路由器)相似,将绑定到外网区段的IP封包包头中的两个组件进行转换:其源IP地址和源端口号。防火墙用目的地区段接口的IP地址替换发送封包的主机的源IP地址。另外,它用另一个防火墙生成的任意端口号替换源端口号。
路由模式时,防火墙在不同区段间转发信息流时不执行NAT;即,当信息流穿过防火墙时,IP封包包头中的源地址和端口号保持不变。与NAT不同,不需要为了允许入站会话到达主机而建立路由模式接口的映射和虚拟IP地址。与透明模式不同,内网区段中的接口和外网区段中的接口在不同的子网中。
2.5 管理界面
管理一个防火墙的方法一般来说是两种:图形化界面(GUI)和命令行界面(CLI)。
图形界面最常见的方式是通过web方式(包括http和https)和java等程序编写的界面进行远程管理;命令行界面一般是通过console口或者telnet/ssh进行远程管理。
2.6 接口
防火墙的接口也分为以太网口(10M)、快速以太网口(10/100M)、千兆以太网口(光纤接口)三种类型。防火墙一般都预先设有具有内网口、外网口和DMZ区接口和默认规则,有的防火墙也预留了其它接口用于用户自定义其它的独立保护区域。防火墙上的RS232 Console口主要用于初始化防火墙时的进行基本的配置或用于系统维护。另外有的防火墙还有可能提供PCMCIA插槽、IDS镜像口、高可用性接口(HA)等,这些是根据防火墙的功能来决定的。
2.7 策略设置
防火墙提供具有单个进入和退出点的网络边界。由于所有信息流都必须通过此点,因此可以筛选并引导所有通过执行策略组列表(区段间策略、内部区段策略和全局策略)产生的信息流。
策略能允许、拒绝、加密、认证、排定优先次序、调度以及监控尝试从一个安全区段流到另一个安全区段的信息流。可以决定哪些用户和信息能进入和离开,以及它们进入和离开的时间和地点。
2.8 内容过滤
面对当前互联网上的各种有害信息,有的防火墙还增加了URL阻断、关键词检查、Java Apple、ActiveX和恶意脚本过滤等。
2.9 入侵检测
黑客普通攻击的实时检测。实时防护来自IP Source Routing、IP Spoofing、SYN flood、ICMP flood、UDP flood、Address sweep、Tear drop attack、Winnuke attack、Port Scan Attack、Ping of Death、Land attack、拒绝服务和许多其他的攻击,并且在检测到有攻击行为时能通过电子邮件或其它方式通知系统管理员。
2.1 0 日志/监控
防火墙对受到的攻击和通过防火墙的请求应具有完备的日志功能,包括安全日志、时间日志和传输日志。最好可以通过同步分析软件同步到指定主机上,实现对日志的详尽审计。
2.1 1 高可用性
提高可用性和负载分配。HA端口:专用于两点间通讯连接。分两种工作方式:一是两台防火墙同时工作,共同负担网络流量,在其中一台防火墙中断的同时,另外一台自动接管所有任务,保证不会发生网络中断;另外一种是在同一时间只使用其中一台防火墙,当其不能正常工作时,另外一台防火墙立刻接管当前的防火墙,不会造成网络中断。
3 防火墙的具体配置应用
本文以芯片级防火墙的后起之秀Fortinet产品(Fortigate3810A)为例,详细介绍了它在作者单位网络中的配置与应用。
表1为Fortigate3810A性能参数一览。
3.1 初始配置
在命令行模式设置好管理IP地址,启用GUI界面,在IE浏览器输入防火墙的IP,出现图1。
从图1可以非常清楚、具体看到防火墙的端口日志流量、CPU、内存占用情况、日志统计等。
3.2 链路设置
设置端口功能,这里有两条电信电信的链路,一条设为NAT模式,一条设为“透明”模式。(root为系统自带,不用设置)如图2。
3.3 策略设置
设置防火墙策略,基于端口的设置,如图3。
3.4 应用程序控制列表设置
设置“应用程序控制列表”,对通过防火墙的内容根据需要允许或禁止通过,如图4。
3.5 p2p过滤设置
防火墙对P2P类应用的策略设置,可对当前流行的P2P类软件进行过滤,如BT、电驴、迅雷等,如图5:
3.6 时间表设置
根据需要,设置不同的时间段对应不同的控制策略,如图6。
3.7 日志记录
通过查看日志记录,可分析当前网络使用状况再做相应的调整,具体到每个IP的流量、访问端口等,如图7。
4 总结与展望
此防火墙应用环境:带宽出口共有500M,分2条线路,用户数高峰期达到6000人时使用稳定正常,对P2P类应用控制效果明显。对比原来的基于X86体系构架的防火墙,在性能、稳定上有了明显的提升,也反映出基于ASIC体系构架的防火墙的优势。并且在使用过程中,可根据需求增加或改变防火墙的功能模块,非常灵活方便。
展望防火墙的发展趋势,基于X86体系构架的防火墙最大的优点是灵活性,但在大数据流量的网络环境中处理效率会受影响,所以在面对高性能这一方面,将面临淘汰和走进低端产品市场的趋势。NP技术是近年来的一个技术突破点,其优势在于网络底层数据的转发和处理,但如果要实现安全策略的控制和审核,特别是对于应用层的深度控制方面还需要大量的研发工作,相对于接口方面的开发难度,已经局限了它更深层次的发展。ASIC技术虽然开发难度大,但却能够保障系统的效率并很好地集成防火墙的功能,在今后网络安全防护的路途上,防火墙采用ASIC芯片技术将要成为主导地位。
参考文献
[1]刘大勇.Web的安全威胁与安全防护[J].大众科技,2005,(6).
[2]沈芳阳,阮洁珊,李振坤,等.防火墙选购、配置实例及前景[J].广东工业大学学报,2003,(3).
[3]张洪霞,刘仁涛.浅谈安全的网络城墙—防火墙[J].应用能源技术,2002,(4).
[4]Web应用防火墙来势汹汹[J].电力信息化,2009,(7).
ASIC 篇8
Camera接口控制器用于控制外部摄像头模组采集数据,接收摄像头模组传输来的数据,按照固定的格式存入FIFO,提供给DMA读取,同时输出行开始信号和帧开始信号,供后续模块同步[1]。
该Camera接口控制器主要提供以下功能:
1) 并行接口支持8 bit,RAW格式数据支持10 bit。
2) 支持ITU-R BT656-4、601协议的接口。
3) 支持的数据输入格式有:RGB 5∶6∶5,RGB 5∶5∶5,RGB 4∶4∶4,YUV 4∶2∶2,RAW,JPEG。
4) 支持的数据输出格式有:RGB 5∶6∶5,YUV 4∶2∶2,RAW,JPEG。
5) 可配置的水平和垂直分辨力。
6) 拍照功能可支持最大800万(3 264×2 448)像素,帧速率为15帧的JPEG压缩数据输出或7.5帧数据输出。
7) 支持工作模式:CCIR601和CCIR656标准并行传输模式。
8) 只支持PCLK的上升沿同步,即在Camera Sensor端需配置成在PCLK下降沿输出,在输出1帧过程中,不支持对PCLK的省电模式。
9) 摄像头模组的基准时钟由系统输出,外围需要1个GPIO口作为摄像头模组的片选信号以支持2个摄像头模组,对于某些类型的摄像头模组,还需要1个GPIO口作为快门输出。
1.1 接口模式
该设计支持CCIR601和CCIR656标准接口。简单地说ITU-R BT.601是“演播室数字电视编码参数”标准。ITU-R BT.656则是ITU-R BT.601附件A中的数字接口标准,用于主要数字视频设备(包括芯片)之间采用27 MHz并口或243 Mbit/s串行接口的数字传输接口标准。
1.1.1 CCIR601接口模式
CCIR601是并行数据,行场同步有单独输出。在采用CCIR601接口方式中,可使用帧信号的电平触发和边沿触发,以满足不同传感器的接口需求。每1帧的数据开始由帧同步来控制。即上一帧数据传完以后,只有等下一个帧同步脉冲到来,才开始。帧同步和行同步的持续时间由垂直帧同步宽度和水平帧同步宽度分别确定。
该接口方式支持帧的2种触发方式:电平触发和边沿触发,如图1所示。
1.1.2 CCIR656接口模式
CCIR656输出的是串行数据,行场同步信号嵌入在数据流中。
图2描述了偶数帧的有效行开始和结束同步信号。其中,0xFF 00 00 9D是EAV信号(End of Active Video);0xFF 00 00 80是SAV信号(Start of Active Video);奇数帧的同步信号如下表所述。有效信号在SAV到EAV之间传输,EAV到SAV之间是空白,如表1所示。
1.2 数据格式说明
该Camera接口可接收以下几种从摄像头模组输入进来的数据格式:JPEG ,RAW,YUV 4∶2∶2, RGB 5∶6∶5,RGB 5∶5∶5,RGB 4∶4∶4。Camera接口在接收到从摄像头模组输入进来的数据后,将数据按照以下固定格式进行存储,为后续模块提供以下几种数据格式∶RGB 5∶6∶5,YUV 4∶2∶2,RAW,JPEG。
该设计给出的是数据在32位读取方式下的格式,在接口总线位宽为64 bit时,其读取方式为在32位位宽模式下的并行排列,即虽然位宽为64 bit,但仍然以32位的位宽为基本单位,唯一的区别在于64位时1次读取的数据是32位时的2倍。
对于输入RGB格式,输出通常为RGB565格式,即1个像素由R[4:0],G[5:0],B[4:0]共16 bit组成,所以每16 bit的像素点按R,G,B依次从高位到低位存放在FIFO的[15:0]中。
对于输入RAW格式,输出也为RAW格式,每次输入10 bit数据,存放在FIFO的[15:0]中的[9:0]位,然后下一次数据存放在[31:16]中的[25:16]位。
对于输入YUV422格式,输出也为YUV422格式,每16 bit 1个像素点,通常按YVYU(每个色差信号为8 bit)依次从高位到低位存放在FIFO的[31:0]中。
对于输入JPEG格式,每次输入8 bit数据,按顺序存放在FIFO的[7:0],[15:8],[23:16],[31:24]中,其输出也为JPEG格式。
2 Camera接口控制器设计
2.1 Camera接口控制器内部结构
在设计中,将Camera接口控制器作为APB的Slave挂在APB总线上,ARM处理器通过APB总线来访问和控制该模块,具体时序详见AMBA Bus Specification[2]。Camera接口控制器内部结构如图3所示。
接口模块(APB Interface)实现该Camera控制器与ARM处理器的APB总线相连接。通过该模块,ARM可以对相应控制器寄存器进行配置,从而实现对该模块和外设的控制,其读写时序按照APB总线读写时序。
数据接收控制模块(Data_in_ctrl)接收从摄像头模组输入进来的数据,将输入数据格式转化为输出数据格式,并将数据存储在输出FIFO中。
数据输出控制模块(Data_out_ctrl)将输出FIFO中的数据按寄存器读取或者DMA读取方式送给ARM或图像处理模块,并产生帧、行同步信号。
Data_in_ctrl和Data_out_ctrl模块实现数据格式转换存储和输出,下面将重点介绍这2个模块。
2.2 数据接收控制模块的设计
数据接收控制模块根据配置寄存器的配置,对输入数据进行接收,并按固定格式存储在输出FIFO中。在开始接收数据以前,必须先配置接口模块的配置寄存器(CONF)和输入尺寸控制寄存器(SIZE)。在输入尺寸控制寄存器(SIZE)中,需对输入每帧图片的行数和列数进行配置(最大可支持800万(3 264×2 448)像素),需与摄像头端配置一致。在配置寄存器(CONF)中,需要根据摄像头所产生的数据格式,配置输入数据格式,配置格式与摄像头模组端一致:将接收到的输入数据格式转换成对应的输出数据格式后,存储到输出FIFO中;还需配置帧同步信号极性选择位、行同步信号极性选择位,即有效电平为低电平还是高电平,同步信号极性配置与摄像头模组端一致;还需配置同步方式选择位,即选择按照CCIR601方式接收还是按照CCIR656方式,同步方式配置与摄像头模组端一致:对于CCIR601方式,该设计对输入帧同步信号(cif_fv_i)、行同步信号(cif_lv_i)进行缓存处理后,采其边沿进行判断,所以无论是电平触发还是边沿触发的同步信号,该设计都可满足;对于CCIR656方式,在检测到帧、行开始或结束的标志位后,再对本帧、行数据进行接收。以上配置只能在帧间间隔的时候变更,即在1帧数据传输过程中不允许改变。在上述配置完成后,再配置主控制寄存器(CIF_CTRL),使能该模块,开始进行数据的接收、格式转换和存储。
2.3 数据输出控制模块的设计
数据输出控制模块包含1个64×64 bit的异步FIFO,cif_pclk_i时钟域写,clk时钟域读,读写采用乒乓操作,将FIFO分成2部分,一块写时,另一块读,不允许读写操作在同一块上。在FIFO半满后,发出满中断信号(若中断使能),同时将状态位和cif_req信号置位,通知外部读取32×64 bit的数据。状态寄存器(status)中指示的是每次读FIFO剩余的个数,当FIFO为空或者状态寄存器指示个数为0时,停止读数。若没有读完32×64 bit数据,等待另半块地址空间满后即会产生数据溢出。
该模块提供了2种数据传输方式:一种是ARM通过APB总线来读取,另一种是图像处理模块通过DMA接口来读取。这2种传输方式可通过配置寄存器(CONF)来配置。在1帧数据内只允许采用1种传输方式,只有在1帧数据结束后才可以配置不同的传输方式,否则无效。当FIFO中数据半满时向DMA发出请求。当图像DMA响应了该请求后,返回dma_ack信号,同时送出的dma_rd信号为低时,每1个clk时钟向DMA传送1个64 bit的数据。在最后一次读数据时,由于1帧数据不能保证恰好能存满FIFO,所以最后一次尾巴数据可能不会送出满状态,此时需要根据帧结束位来判断读取最后一次数据。即操作顺序为同时查看FIFO满和帧结束位,只要其中1个为高即可启动数据读操作。不论为DMA读取还是APB总线读取,最后一次读取都需要判断数据是否结束,在JPEG模式下,需要判断图像数据结束标志数据(FFD9);在非JPEG模式下,需要对行同步和列同步信号计数。
该模块产生帧、行同步信号,供后续模块使用。帧同步信号(cif_sof)为开始从摄像头模组模组接收到的信号经过异步时钟后得到,其实际输出为当帧同步到来时拉高,一直持续到本帧结束且FIFO读空才结束。而行同步信号(cif_sol)为当外部模块读取FIFO中对应的行首数据时,与输出数据同步,输出4个时钟宽度的同步信号。另外在JPEG模式下,没有给出行同步信号,此时帧同步信号在拉高后,与其他模式相同,其一直持续到本帧结束且FIFO为空时才结束。
3 功能验证与综合
在代码编写完成后,编写了testbench模块对其进行功能性验;并用VerilogHDL描述了1个摄像头模型,用来产生输入数据且输入数据格式可配;最后编写1个数据对比模块,将摄像头模型产生的数据和Camera接口控制器接收到的数据进行对比,检验数据是否一致,功能是否正确。
当满足APB总线写时序后,APB总线对模块内部接口寄存器进行配置,在将输入数据格式设置为RGB565、同步方式设置为CCIR601方式、高电平有效、DMA传输方式的情况下得到的仿真波形如图4所示。
图4中,摄像头产生的数据和该模块接收处理后的数据一致,中断的产生和处理也满足设计要求。
对各种输入数据格式进行仿真后,利用综合工具对其综合。经过对Script脚本约束的设定,将控制器的时序和面积优化,使其工作频率满足手机基带芯片频率要求。
最后进行FPGA验证,结果表明该Camera接口控制器在数据传输控制中完全符合手机基带芯片的要求。
4 结论
该设计提出的Camera接口控制器可以支持最大像素为800 W,支持RGB,YUV,RAW,JPEG等多种输入格式,并对这些格式的数据进行存储,且提供多种数据输出格式以供后续模块读取使用。在经过验证、综合和FPGA测试后,确保该设计可进行封装制造,使得该控制器可作为1个成熟的IP核,可以移植到各种含多媒体的ASIC芯片中去,进行拍照或摄像[3,4]。
参考文献
[1]王秀芳,张昆,桑圣洁.基于ARM的图像监控系统的开发[J].科学技术与工程,2011,11(14):3313-3317.
[2]AMBA Specification(REV2.0)[EB/OL].[2011-07-20].http://www.ens.ewi.tudelft.nl/Education/courses/et4351/amba.
[3]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2004.
【ASIC】推荐阅读: