积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> CPLD/FPGA >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
从1394VHDL代码移植看FPGA设计
 
作者:汪国有,龙翔林   来源:电子设计应用    点击数:142   更新时间:2008-6-13
您可以添加到网摘 让更多人关注此文章:

    

摘 要:通过从基于FPGA设计的1394物理层芯片与链路层芯片合并为一个FPGA芯片且由双端口升为三端口的VHDL代码移植过程,介绍1394芯片基本原理和移植中所产生的问题解决办法,阐述FPGA芯片设计的代码规范化的重要性以及一些基本技巧。


关键词:异步FIFO 冗余设计 逻辑锁


1 引言



IEEE1394 是在计算机与外设直接进行高速数 据传输的串行总线,因其具有传输速度高、支持即 插即用、支持多达63个设备级联、以及设备间传输 无需主机干预等特点,以至从其一出现就备受青 睐。因IEEE 1394协议中的物理层可以在链路层 不激活的情况下,作为中间节点而存在于1394网 络中,物理层具有单独存在的意义,因此应用中就 有纯物理层芯片、纯链路层芯片以及物理层和链路 层合一的芯片三种类别。


由FPGA实现应用协议是目前最普遍的芯片 设计方法。在用VHDL 语言两个小FPGA芯片上 分别设计出IEEE1394 链路层和双端口的物理层 后,把这两部分代码合并到一个更大容量的FPGA 上,并改进为三端口,看似非常简单,但因FPGA电 路的逻辑综合,引脚到寄存器之间的延时等方面发 生了变化,代码移植发生了问题。


由于物理层部分的移植过程中有增加端口,出现的问题较多,而链路层基本没有变化,这里主要分析物理层的设计部分。


通过对改进电路设计,分析代码上的差别,从 而阐述FPGA设计代码规范化的重要性和一些技巧的应用。


2 IEEE1394物理层介绍


2. 1 IEEE1394总线协议框图
1394物理层的每个端口有两对差分信号TPA和TPB组成,其中TPA包含TPA +和TPA - 两条信号线, TPB包含TPB +和TPB - 两条信号线,物理层通过判断每个端口在自己发送的信号与对方发送的信号产生的线状态来判别总线的工作状态, 当进入接收或发送状态时,就进行数据处理,并与链路层进行数据交换。


1394链路层和物理层使用统一的系统时钟, 以保证数据的同步。链路层对物理层的总线申请和寄存器操作是单向的,由LREQ来控制。而数据则是双向的,由控制信号决定数据的传输。链路层要实现发送数据的打包操作和接收到的数据的校 验判别及解包操作。


1394事务层则由具体的设备程序处理,其与链路层之间交换的是已通过校验的有效数据包。



图1 1394总线协议框图

2. 2 IEEE1394物理层的工作流程
1394物理层的每个设备没有固定的节点号, 是在使用时通过配置产生的节点号,设备间再通过 这个节点号来识别数据的源与目标。其配置流程 如下:



总线复位由设备上电、设备插拔、状态超时、软件 控制等产生,它通过发送一个超过166us的BUS_RESET信号,保证所有的节点都能进入复位状态。


树标识是从叶子节点开始,按端口号由低到高的原则,通过子握手和父握手信号协商,把整个网 络各端口的父子关系确定下来,也就是确定了整个网络的TOP结构(树结构) 。


自标识也是从叶子节点开始的,通过逐一向总线发送自标识包,来表明自己的身份,节点号从0开始,已经完成自标识的进入正常仲裁状态,没有完成自标识的,每收到一个自标识包,其节点号增1,这样当最后一个节点(即根节点)完成自标识包发送后,网络上的每个节点都有一个唯一标识自己 的节点号,这时自标识过程完成,所有节点都进入正常仲裁状态。


正常仲裁则通过判断总线状态和链路层的总线请求,进行总线权的仲裁,包括优先权仲裁、公平 仲裁等,只有通过仲裁获得总线权的节点才可以向网络发送数据。


2. 3 IEEE1394物理层的数据收发
在自标识完成后,获得1394总线权的节点进入数据发送状态,而没有获得总线权的节点进入接收与转发状态。数据的发送比较简单,直接向所有已连接的端口输出信号即可,而接收则不同,一方 面要从接收端口接收数据,另一方面要向其它端口转发接收的数据,而这个转发的数据,需要经过内部时钟同步才能转发出去。这样就会有转发延时的问题,考虑到总线上可挂接63个节点,因此,这个延时还不能太大,否则将影响整个1394总线权的仲裁,而导致系统崩溃。


3 移植前后的主要差异


3. 1 芯片型号变化
由两片EP1C6T144C8合为一片EP1C12Q240C8, 总的I/O引脚减少,单一芯片的逻辑单元数加大,电路综合变得复杂,综合效果没有芯片分开时好,另外合到一个芯片后,原本来自1394信号电缆的干扰基本只与物理层相关,现在更渗透到了链路层,反之,来自应用层的干扰原本主要影响链路层,现在却影响到了物理层。


3. 2 端口数增加
1394端口由2端口增加到3 端口,信号数增加了12根, I/O资源变少,状态判别逻辑变复杂, 与信号直接相关的逻辑单元平均距离变长,也就是说信号延时变长。


3. 3 链路层与物理层程序合一
程序合并后,调试难度增加,一是编译时间加长,分成两个单独芯片进行电路综合的总时间,要比合到一起后的时间短1 /3;二是不能采取与标准 LLC层、PHY层芯片分别调试的方式来简化设计 调试过程,因而导致问题更难定位。


4 移植过程中问题的解决


4. 1 接收F IFO的处理
在移植前,是一个2端口的方案,移植后变成了3 端口, 按照原设计, 先利用接收端口号 ( PORT)选择相应的STRB 和DATA输入,再利用这个信号异或产生时钟信号,接一个F IFO (见图 2) ,但运行中问题出现了,不是所有时间所有端口都能正常接收。


实际上,扩充到3端口后,各引脚不是排列在 FPGA的同一ROW或COLUMN,在电路综合中,不 同端口到F IFO的输入路径长度和方式都不一致, 同时因为内部时钟频率并不比接收时钟频率高,不能在F IFO前对接收信号进行同步处理,只能使用 组合逻辑,使得组合逻辑产生的毛刺影响了数据的有效性。


图2


通过使用冗余的办法,把原来的共用FIFO改为每个端口一个接收FIFO (见图3) ,这样在每个端口能以最短路径和很少的组合逻辑接到FIFO, 而3个FIFO的输出再由接收端口号来控制,此时FIFO的输出是通过内部时钟同步,这样就解决了问题。



图3 使用冗余后每端口接收F IFO


[1] [2]  下一页



相关文章
· 基于 TPS54310的雷达视频信号模拟器的电源设计[16]
· 测试检验电路时序的FPGA逻辑验证分析仪[46]
· 第三方软件快速实现FPGA嵌入式系统设计[49]
· 再思考FPGA中的同构和异构设计架构[47]
· 基于FPGA的数字秒表的设计[52]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
安富利助中国中小型制造企业摆脱购买假
富士通微电子与北京航空航天大学共建M
西安市民发明用牙齿听声音的传导器
日本制成超微结构 有望大幅
中国嵌入式系统产业联盟嵌入式技术论坛
ARM联手IBM等三家公司开发32n
Hitachi Elect
中国芯片供需缺口达七成
西班牙研发出视觉鼠标 眨眼
首条OLED生产线昆山投产 
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
99SE请教个问题...
EDA工具集合(2)...
EDA工具集合(1)...
嵌入式开发液晶显示...
比尔盖茨给年轻人的10句警言...
各种单片机的总结(优缺点)...
[转帖]AVR的主要特性...
[转帖]AVR芯片的ISP全攻...
写给迷茫中的嵌入式新手...
Arm/DSP/FPGA的比较...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网