基于FPGA的总线型LVDS通信系统设计
发布时间:2008/5/26 0:00:00 访问次数:704
关键词:blvds fpga 串化 解串 高速通信低压差分信号lvds(low voltage differential signal)是由ansi/tia/eia-644-1995定义的用于高速数据传输的物理层接口标准。它具有超高速(1.4gb/s)、低功耗及低电磁辐射的特性,是在铜介质上实现千兆位级高速通信的优先方案;可用于服务器、可堆垒集线器、无线基站、atm交换机及高分辨率显示等等,也可用于通信系统的设计。blvds(bus lvds)是lvds技术在多点通信领域的扩展,要求附加总线仲裁设计、更大的驱动电流(10ma)和更好的阻抗匹配设计。
通常是lvds电路设计使用各种专用芯片,如美国国家半导体公司的ds92lv16等。我们用fpga芯片自行设计blvds内核及扩展部分。相比之下,使用fpga可大幅减少芯片数量,降低成本,提高系统可靠性,同时具有更大的灵活性和向后兼容性。由于目前尚无实用的16位vlvds收发器芯片问世,本设计也填补了专用芯片(asic)的空白。
我们最终选了xilinx公司的xcv50e。此芯片属于virtex-e系列,具有如下特性:
*0.18nm 6层金属工艺,具有5.8万个系统门;
*使用1.8v核心电压,低功耗设计;
*130mhz同部时钟;
*64kb的同步块同存(blockram),可实现真正的双口操作;
*支持包括lvds、blvds在内的20种高性能接口标准;
*8个全数字的延迟锁定环dll(delay locked loops),具有时钟移相和乘除功能;
*支持ieee 1149.1边界扫描标准,具有基于sram的在系统配置功能。
我们使用xilinx foudation f3.1i软件开发xcv50e芯片。设计流程为:首先用编写vhdl语言程序、绘制原理图或设计状态机的方法生成网络表,功能仿真正确后,经过翻译、映射、放置和布线、时序优化及配置过程,生成比特流文件。然后,进行时序仿真,仿真通过后下载到prom中。(我们用了xilinx公司的xc18v01。)
1 结构及工作过程
1.1 系统结构和fpga结构
本通信系统由背板和若干通信子卡组成。背板并更有8个插槽,并布有blvds总线和其它控制、地址总线。通信子卡由ep7211芯片(负责数据处理)、xcv50e及dram、prom等外围芯片和元件组成,系统结构如图1所示。
设计完成后的xcv50e由控制部分、发送fifo、帧编码器、串化器、解串器、帧***、数据检出器、接收fifo、时钟倍频器及输入输出单元等部分组成,结构如图2所示。
1.2 工作过程
在发送子卡中,ep7211将待发数据整理成多个长255字,字宽16位的数据帧,发至fpga内的发送fifo中。该fpga得到总线控制权后,即发送同步帧(由同步字与填充字组成),待被寻址的接收子卡实现与自己的同步后,再发送数据帧。各帧数据经串化器转化为两对差分信号,并从中获得同步信息并实现同步,继而检出有效数据,写入接收fifo,同时以快中断(fiq)通知ep7211。
2 软件设计
2.1 ep7211程序设计
通信子卡内的ep7211为系统级芯片,用来预处理和接收数据。ep7211的内核为arm7tdmi,使用32位精简指令。发送数据的流程如图3所示。接收较简单,只需在快中断(fiq)服务程序中写入接收fifo的读取代码即可。
2.2 fpga设计
fpga的设计中,发送及接收fifo的设计用了双口快内存(block ram),时钟倍频器用了延迟锁定环(dll)。帧***由30位并行数据产生器、同步字检测阵列和接收状态机组成。以下重点介绍帧编码器和串化器的设计。
(1)帧编码器的vhdl语言设计
帧编码器包括一个长为256的计数器和一个四状态的单热点状态机,用以产生同步帧和数据帧。部分代码如下:
process(reset,clk) //产生长256的计数器
if reset='1'then count<=0;
elsif clk'event and clk='1' then count<=(count+1)mod 256;
end process;
tc<='1'when count=255 else '0';
type state_type is(idle,pack1,pack2,transmit);
siganl sreg:setat_type;
rpocess(clk,r
关键词:blvds fpga 串化 解串 高速通信低压差分信号lvds(low voltage differential signal)是由ansi/tia/eia-644-1995定义的用于高速数据传输的物理层接口标准。它具有超高速(1.4gb/s)、低功耗及低电磁辐射的特性,是在铜介质上实现千兆位级高速通信的优先方案;可用于服务器、可堆垒集线器、无线基站、atm交换机及高分辨率显示等等,也可用于通信系统的设计。blvds(bus lvds)是lvds技术在多点通信领域的扩展,要求附加总线仲裁设计、更大的驱动电流(10ma)和更好的阻抗匹配设计。
通常是lvds电路设计使用各种专用芯片,如美国国家半导体公司的ds92lv16等。我们用fpga芯片自行设计blvds内核及扩展部分。相比之下,使用fpga可大幅减少芯片数量,降低成本,提高系统可靠性,同时具有更大的灵活性和向后兼容性。由于目前尚无实用的16位vlvds收发器芯片问世,本设计也填补了专用芯片(asic)的空白。
我们最终选了xilinx公司的xcv50e。此芯片属于virtex-e系列,具有如下特性:
*0.18nm 6层金属工艺,具有5.8万个系统门;
*使用1.8v核心电压,低功耗设计;
*130mhz同部时钟;
*64kb的同步块同存(blockram),可实现真正的双口操作;
*支持包括lvds、blvds在内的20种高性能接口标准;
*8个全数字的延迟锁定环dll(delay locked loops),具有时钟移相和乘除功能;
*支持ieee 1149.1边界扫描标准,具有基于sram的在系统配置功能。
我们使用xilinx foudation f3.1i软件开发xcv50e芯片。设计流程为:首先用编写vhdl语言程序、绘制原理图或设计状态机的方法生成网络表,功能仿真正确后,经过翻译、映射、放置和布线、时序优化及配置过程,生成比特流文件。然后,进行时序仿真,仿真通过后下载到prom中。(我们用了xilinx公司的xc18v01。)
1 结构及工作过程
1.1 系统结构和fpga结构
本通信系统由背板和若干通信子卡组成。背板并更有8个插槽,并布有blvds总线和其它控制、地址总线。通信子卡由ep7211芯片(负责数据处理)、xcv50e及dram、prom等外围芯片和元件组成,系统结构如图1所示。
设计完成后的xcv50e由控制部分、发送fifo、帧编码器、串化器、解串器、帧***、数据检出器、接收fifo、时钟倍频器及输入输出单元等部分组成,结构如图2所示。
1.2 工作过程
在发送子卡中,ep7211将待发数据整理成多个长255字,字宽16位的数据帧,发至fpga内的发送fifo中。该fpga得到总线控制权后,即发送同步帧(由同步字与填充字组成),待被寻址的接收子卡实现与自己的同步后,再发送数据帧。各帧数据经串化器转化为两对差分信号,并从中获得同步信息并实现同步,继而检出有效数据,写入接收fifo,同时以快中断(fiq)通知ep7211。
2 软件设计
2.1 ep7211程序设计
通信子卡内的ep7211为系统级芯片,用来预处理和接收数据。ep7211的内核为arm7tdmi,使用32位精简指令。发送数据的流程如图3所示。接收较简单,只需在快中断(fiq)服务程序中写入接收fifo的读取代码即可。
2.2 fpga设计
fpga的设计中,发送及接收fifo的设计用了双口快内存(block ram),时钟倍频器用了延迟锁定环(dll)。帧***由30位并行数据产生器、同步字检测阵列和接收状态机组成。以下重点介绍帧编码器和串化器的设计。
(1)帧编码器的vhdl语言设计
帧编码器包括一个长为256的计数器和一个四状态的单热点状态机,用以产生同步帧和数据帧。部分代码如下:
process(reset,clk) //产生长256的计数器
if reset='1'then count<=0;
elsif clk'event and clk='1' then count<=(count+1)mod 256;
end process;
tc<='1'when count=255 else '0';
type state_type is(idle,pack1,pack2,transmit);
siganl sreg:setat_type;
rpocess(clk,r
热门点击
- AD7705/7706在仪器仪表中的应用
- 用FPGA设计软件无线电和调制解调器
- 高分辨率指数式数字电位器的设计
- 连续切片三维重构绘图过程的消隐技术
- 基于VHDL语言的卷积码编解码器的设计
- 基于FPGA的总线型LVDS通信系统设计
- CMOS多频段低噪声放大器设计
- 在CPLD管理下实现高效多串口中断源
- 零功耗超快速CPLD器件ispMACH400
- 异步FIFO结构及FPGA设计
推荐技术资料
- 泰克新发布的DSA830
- 泰克新发布的DSA8300在一台仪器中同时实现时域和频域分析,DS... [详细]