首页>>科技 >>内容

基于FPGA和EP1K100Q208芯片的正码速调整设计

发布时间:2023-12-18 19:02:08编辑:温柔的背包来源:

很多朋友对基于FPGA和EP1K100Q208芯片的正码速调整设计不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

基于FPGA和EP1K100Q208芯片的正码速调整设计

1介绍在时分数字通信系统中,为了扩大传输容量和提高传输效率,常常采用复用技术将几个低速数字信号组合成一个高速数字信号流,在高速宽带信道中传输。数字复用器通过时分复用将两个或两个以上分支组合成一个高阶群数字信号器件,其中包括码速调整结构。

码速调整是将各路不同速率的分支信号调整成与复用设备定时完全同步的数字信号,使各路分支信号通过复用单元复用成数字流。码速调整可分为正码速调整、正/负码速调整和正/零/负码速调整。通过对异步FIFO设计的改进,提出了一种基于FPGA的正码率调整设计方案。通过正码率调整,输入码率为1200bps,输出码率为1350bps。2正码速度调整的基本原理

2.1正码率调整的帧结构根据设计方案,正码率调整的帧结构为32bit,分为四组,每组8 bits。正编码调制的帧结构如图1所示。图1正码率调整的帧结构

第一组8位信息,四组的第一位二、三、,C1、C2、C3,是码速调整标志位。第四组中的第26位V是码速调整插入位,用于调整基组的码速,使其瞬时码率保持一个单位,适应复用器主时钟。具体调整方法包括:在第一组结束时间判断是否需要调整,如果需要调整,则在第V位插入调整位;如果不需要调整,V位置传输信息位。

为了区分V位置是插入调整位还是传输信息位,码速调整标志位C1、C2、C3用于标记它。如果在V位置插入调整位,则在C1、C2、C3位置插入三个“1 ”;如果V位置的传输信息是位,则在C1、C2、C3位置插入3个“0”。

2.2正码调速系统的组成本设计采用格雷码进行地址编码的异步FIFO来满足正码调速的需要,并给出了适合格雷码的帧结构。正码调速系统的结构如图2所示。图2是正代码速度调节系统的方框图。

正码速调整单元主要分为三个模块:时钟读取、调整、辅助信号发生器、异步FIFO模块和调整信号插入。异步FIFO模块包括地址发生器、相位比较器和双口RAM。

首先将积分信号控制器产生的写时钟和写时钟控制信号送到地址发生器,地址发生器将写时钟上升沿产生的写地址(格雷码)送到双口RAM,将写地址(自然码)送到相位比较器。同时,“积分信号控制器”产生的未调整数据流和写使能信号也被送到“双口RAM”。

为了准确地将数据写入双端口RAM,使用写时钟的下降沿将数据写入RAM。

然后,当写时钟被写到地址“101”时,集成信号控制器将读时钟控制信号发送到读时钟、调整和辅助信号发生器,该信号发生器与发送的统一时钟(1350HZ)结合,生成扣除了调整标志位的非统一读时钟,并将其发送到地址发生器,同时,它将用于控制状态位的辅助信号发送到相位比较器,并将调整信号发送到调整信号。

减读时钟通过地址发生器将读地址(自概率码)发送给相位比较器,将读地址(格雷码)和减读时钟发送给双口RAM。此时,RAM通过读时钟的上升沿依次从地址“000”读取数据。原理图如图3所示。

随着时间的推移,读指针和写指针之间的距离逐渐变小。当读写地址之差小于相位比较器计算的阈值“100”时,在图3的第8位位置给出一个高电平存储器状态位,通知系统缓冲器即将清空,然后在第32位位置存储器状态位再次设置为“0”,等待下一次状态判断。最后,“调整信号插入”根据存储的状态位的电平来确定是在数据流的调整位中插入3个“1”还是3个“0”。

3 FPGA设计的正码调速3.1读取时钟,调整和辅助信号发生器模块。该模块的主要功能是产生根据存储状态扣除调整位的间隙读时钟,同时产生调整信号和相关的辅助信号。

在推演之前,读时钟首先经过一个32位计数器,当读时钟控制开启时,计数器开始计数。在第9、17和25位设置调整标志位的高电平;在第26位位置调整位高电平;在第8位和第32位,辅助信号分别显示计数值“00111”和“11111”。

当存储状态位为“1”时,表示存储器即将清空,扣除第26位的读时钟脉冲,不发送信号码。逻辑门关系如下:r _ clk=(rclk _ reset and(clk 1350 and(非SZ _ c)) and((非空)or(非SZ _ v));其中r_clk是减去的读时钟,rclk_reset是读时钟控制,clk1350是1350HZ的读时钟,sz_c是调整标志位,sz_v是调整位,empty是存储状态位。具体仿真波形如图4所示。图4时钟读取、调整和辅助信号发生器的模拟图。

3.2异步FIFO设计这部分是本文的重点部分,FIFO设计的好坏直接影响系统性能。(1)地址发生器模块该模块的主要功能是根据读写时钟和时钟控制信号产生相应读写地址的自然码和格雷码。由于读地址直到写地址被写入“101”才开始从地址“000”读取数据,所以通过将写时钟控制信号延迟5个写时钟周期来产生读时钟控制信号。(2)相位比较器模块

根据“时钟读取、调整和辅助信号发生器模块”中产生的辅助信号,判断每帧第8位位置的存储状态是否为“空”,如果为“空”,则在第8位位置设置存储状态位的高电平,然后在第32位位置根据辅助信号再次将状态辅助位返回到初始状态——低电平。

判决器主要在辅助信号值为00111时判断差值是否小于设定的阈值100,如果小于100,则将存储状态设置为1,然后在辅助信号为11111时将存储状态设置为0。如果大于“100”,则存储状态保持初始状态“0”。(3)双端口RAM模块

RAM需要大量的存储空间,如果直接用数组的形式描述,资源利用率相当低。因此,本文选择IP核定制RAM,直接生成宽度为1、深度为8的带写使能的双口RAM。写时钟在下降沿有效,读时钟在上升沿有效,写使能在高电平有效。3.3调整信号插入模块

该模块的主要功能是根据存储状态位,在扣除调整位后,在数据流的调整标志位中插入“000”或“111”。如果插入“000 ”,则在第26位发送信号码,如果插入“111 ”,则在第26位发送“1”。逻辑关系是:如果empty=' 1 '那么dout=(din or (SV或sc));elsif empty='0' thendout=((非sc)和din);结束if;

其中din为扣除调整位后的数据,dout为正码率调整后的数据。因为插入后有毛刺,所以在其后端加了一个D触发器来去除毛刺。最后,在MAXPLUS II开发平台上以原理图的形式输入整体仿真结果。根据同步单元各功能模块的划分,各功能模块连接编译成功。整体模拟如图5所示。图5整体模拟图

其中dout_go表示扣除调整位置后的数据流,dout_in表表示插入调整信号后的数据流,dout_tz表示添加D触发器后的调整数据流。从图中可以看出,当wen为高电平时,数据“00100100”被写入写地址wadd,当地址“101”被写入时,读时钟开始工作,依次从地址“000”开始从RAM中读取数据。

当到达第八位位置时,由于地址差值为“101”且未达到阈值,由于存储的状态位empty仍为“0”,这意味着不需要调整,所以在帧的调整标志的位置插入三个“0”,调整位继续发送信号码。dout_go上的最后一个调整标志位可以很明显的看到“0”插入造成的毛刺,但是D触发器的dout_tz已经成功的消除了这个毛刺。

结论系统仿真波形良好,能准确实现正码速调节。该系统由芯片EP1K100Q208实现。通过正码速调整,调整后的数字信号可以复用,扩大了传输容量,提高了传输效率。

以上知识分享希望能够帮助到大家!