完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
MPEG-2编码复用器主要由DSP(数字信号处理器)和FPGA两大部分组成。其中,DSP作为整个系统的主控单元,而FPGA则完成相应的辅助逻辑功能。用FPGA实现的编码复用器,具有设计,升级都非常方便,快速的特点,提高了工作效率。
FPGA芯片简介 编码复用器中所使用的FPGA芯片是美国ALTERA公司生产的FLEX10K50V。 Flex10K系列是ALTERA公司在FLEX8000系列基础上发展起来的一种新型器件。它的结构的主要特点除了主要的逻辑阵列块(LAB)之外,首次采用了嵌入阵列块(EAB)。 FLEX10K50V的主要特性指标为: ●逻辑门数目为50,000门; ●最大I/O引脚数为274个; ●提供-1,-2,-3,-4四种速度级别; ●触发器数目为3,184个; ●LE(Logic Element,逻辑单元)数目为2,880个; ●总的RAM为20,480bits。 MAX+ PLUS II开发工具 MAX+ PLUS II是开发ALTERA公司FPGA产品(包括MAX系列和FLEX系列)的软件工具包。利用MAX+ PLUS II提供的设计环境和设计工具,可以灵活高效地完成各种数字电路设计。在MAX+ PLUS II的设计环境下, FPGA的整个设计流程如图1所示: 1. MAX+ PLUS II的设计输入可以有三种方式,即图形输入,文本输入和波形输入。此外,符号编辑器用于编辑用户自己的模块符号。需要说明的是: 在本系统中,我们使用AHDL(ALTERA,HDL) 语言作为文本输入方式。 2. 设计实现即在FPGA器件内物理地实现所需地逻辑。这个过程由MAX+ PLUS II中的核心部分编译器完成。它依据设计输入文件自动生成用于器件编程、波形仿真、延时分析等所需的数据文件。 3. 设计仿真是由仿真器和时延分析器利用编译器产生的数据文件,自动完成逻辑功能仿真和延时特性仿真。通过仿真,发现设计中的错误与不足,对设计输入进行修改和完善,最终达到设计要求。 4. 在仿真结果正确以后,就可以进行器件编程,即通过编程器(Programmer)将设计文件下载到FPGA芯片中,在实际芯片中进行实际信号的时序验证,就芯片的实际运行性能进行系统测试。 复用器中的FPGA逻辑设计 在MPEG-2编码复用器中,FPGA所实现的逻辑功能主要是: (1)系统上电后,完成对其他器件(如DSP、、FIFO)的复位; (2)响应系统主控单元DSP的指令,从相应的输入FIFO中读取TS流数据,做并串变换后传输至DSP的串行输入口; (3)由于复用器必须对进入该系统的数据传送流(TS流)中的程 序参考时钟域(PCR域)中的数值进行补偿计数。因此,FPGA还需要完成: a.在复用器的数据传送流输入端检测PCR域并纪录PCR域初值; b.在复用器的数据传送流输出端检测PCR域并将经过补偿计数后的PCR的新值 装载进PCR域; (4)其他一些逻辑。 1、输入输出FIFO的复位模块 输入输出FIFO复位模块较为简单。它由文本输入方式实现,内部主要由计数器和D触发器组成。它对电路的控制主要包括:整个系统上电后,主控单元DSP通过I/O端口向FPGA发出FIFO复位的指令, FPGA通过地址译码,产生RSFIFO信号.RSFIFO作为计数器内部的清0端信号,CLK38(全局时钟信号)作为计数器的时钟信号,并引导计数器开始计数。计数器计数到一定数值时,再连通D触发器先后产生RESET(输入输出FIFO复位信号)以及FO_ENA(输出FIFO读允许信号),完成了FIFO复位模块的逻辑时序。 2、并/串转换模块 图3是并串模块的上层图。其I/O引脚情况见表1: 表1 并/串转换模块I/O引管脚说明 管脚名称管脚功能 CLK38并串模块工作时钟 HF输入FIFO半满信号 Q[8..0]TS流并行数据信号 P_CLKTS流串行数据包同步信号 S_DATATS流串行数据信号 S_CLKTS流串行数据时钟信号 FIFO_R_CLK输入FIFO读时钟信号 CLK_CONTROL输入FIFO读时钟控制信号 由于MAX+PLUSII的老式宏函数中只提供了作4、5、8位和16位并串变换的移位寄存器 ,而此处系统完成的是9位并串变换(8位数据位加1位包同步位),因此必须自己编写tdf文件,而不能直接调用宏函数。具体的功能实现为: 选择使用9个D触发器,将它们相互连通组成9位的移位寄存器。一旦产生输入FIFO的半满信号(HF),模块开始工作,将输入FIFO中的9位并行数据读入移位寄存器中,在CLK38的工作时钟控制下,将9位数据顺序串行移出产生S_DATA(TS流串行数据)。并且,在模块中还设置了一个4位计数器A。计数器A同样在CLK38的工作时钟控制下,整体模块开始工作时开始同步计数。每计数到9时计数器清0,并输出一个高电平信号。而在其他计数值时,该信号输出为低电平。那么,产生的这个信号就是TS流的串行数据包同步信号(P_CLK)。而TS流串行数据的时钟信号(S_CLK),很显然就是CLK38。 此外,将CLK38时钟进行8分频作为输入FIFO的读时钟信号(FIFO_R_CLK)。而输入FIFO读时钟的控制信号(CLK_CONTROL),则由模块中设置的另外一个计数器B来产生,确保输入FIFO一次半满后,FPGA只从其中读取该FIFO最大容量之一半的数据。例如:在本系统中,输入FIFO的最大容量为512个字节。那么,设置的计数器B就必须是一个9位计数器。计数器的计数时钟为FIFO_R_CLK,从输入FIFO半满,FPGA启动读数时开始计数。每计数到256(输入FIFO容量的一半)时计数器清0,并将输入FIFO读时钟的控制信号(CLK_CONTROL)置为低电平,从而禁止再产生输入FIFO读时钟信号。 3、PCR补偿计数模块 根据MPEGII标准,TS流中的PCR域共有42位有效码字,由两部分组成:一部分以系统参考时钟的1/300(90KHZ)为单位,称为program_clock_reference_base,33字段;另一部分称为program_clock_reference_extension, 以系统参考时钟(27MHz)为单位的9位字段。 因此,整个PCR补偿计数模块分为两大部分:一部分是9位字段(E0~E8)的PCR域补偿计数模块,由一个8位计数器(调用宏函数8COUNT)和一个4位计数器(调用宏函数74161)组成。其中,8COUNT的计数时钟为27MHz时钟(由硬件电路中的27MHz晶振提供);而74161的计数时钟则为8COUNT提供的最高位进位时钟(由8COUNT中的最高位E7取反后得到);另一部分为33位字段(Q32~Q0)的PCR域补偿计数模块,由4个8位计数器(调用宏函数8COUNT)和一个4位计数器(调用宏函数74161)组成。其中,74161的计数时钟为27MHz时钟300分频后得到的90KHZ时钟,它只对33位字段中的最低位Q0进行补偿计数。第一个8COUNT的计数时钟为74161的Q0位的进位时钟(由Q0取反后得到);而其他3个8COUNT的计数时钟则分别为前一个8COUNT的进位时钟(即分别由Q8,Q16,Q24取反后得到)。 4、复用系统FPGA逻辑设计中一些技巧 在该系统FPGA逻辑设计过程中,由于系统结构比较复杂,整个FPGA逻辑设计也比较大,所以在作逻辑设计时,一般应有一个整体的考虑。具体作设计时,应该采用层次化的结构设计。另外,还必须结合整个系统的特点,有意识的对FPGA中逻辑设计进行优化和精简。例如:检测TS数据流的包同步字0X47,由于该同步头字节并不是唯一的,中间可能有码字也恰为其值。因此,一般情况下,FPGA搜索同步码字的逻辑如下:首先找到第一个0X47,然后进行计数,计到187字节后,再检测是否为0X47,如果是,输出包同步信号;接着每隔187检测一次,如是0X47,则继续输出包同步信号,如不是,则从事开始搜索0X47。 而在该系统的设计中,并没有采用这种方法,而是利用了I/O FIFO的9比特特性,FPGA直接搜索9位包同步字节0X147。另外,在PCR域补偿计数的模块中,也存在一个PCR域确认的问题。PCR域的长度为6个字节48位码字(42位有效码字加6位保留位),在FPGA已经装载PCR域的初值后,完全可以将PCR域中的6个字节改为预先设定好的协议码字(当然,它们必须对于码流而言是唯一的)。这样,在TS码流输出端进行将补偿计数后的PCR数值重新装载进PCR域的工作时,FPGA不仅能够很方便的识别出PCR域的具体位置,而且还可以从这些协议码字中读出较多的复用信息。 简洁而有效的FPGA逻辑设计,可以使系统运行的稳定性得到很大的改善。 |
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
653浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:21 , Processed in 1.163791 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号