latticeecp5-25学习

平安培训系统
latticeecp5-25学习
在这⾥记录⼀下,也是对学习的⼀个简单总结吧,也⽅便⾃⼰以后查询。项⽬中⽤到的是Lattice LFE5U-25F-6BG381C这款芯⽚,该芯⽚采⽤40nm⼯艺,相⽐以前有更多的dsp,性价⽐⾼。先看看这块芯⽚的资源吧,如下图所⽰。有197个PIO⼝,2个锁相环
PLL,56个ebr(每个ebr18kb,相当于1个18x1024的dpram)或者1008kb嵌⼊式内存,28个18x18乘法器,24k的lut。
接下来,我们来看看该芯⽚的平⾯图。
先来讲讲PFU(programmable functional unit)单元,lattice⾥这个是基本功能单元,由4⽚slice组成,⼀⽚slice⼜是由2个
lut4&carry chain(进位链,⽤于加快算术运算)、2个触发器以及⼀些其他控制逻辑(⽤于复位、使能、扩展等)。slice可配置为4种运⾏模式:1,logic模式,即⽤于正常的逻辑;2,ripple模式,主要⽤于低位数运算时加快速度;3,ram模式,该模式使⽤lut搭建distributed ram,⼀个16x4的单⼝ram需要⼀个pfu,slice0和slice1构成ram,slcie2⽤于地址和控制信号;4,rom模式。
接下来讲讲时钟。ECP5-25时钟⽹络分为主时钟⽹络PCLK和边沿时钟⽹络ECLK,主时钟⽹络具有低时钟偏移、⾼扇出特点,通过⼀个叫center mux的模块分部到各fpga构造中;边沿时钟⽹络主要是⽤于⾼速I/O接⼝⽤,如⽤于ddr memory、generic ddr等,值得注意的是要上边沿时钟⽹络,需要ECLKSYNC模块或者ECLKBRIDGE。ECP5-25有两个PLL,位于bottom 左和右;每个PLL有4个输
出,clkop、clkos、clkos2、clkos3,每个输出都可以route到主时钟⽹络,但是只有clkop和clkos可以route到eclk;每个PLL输⼊源有4个,专⽤pll引脚、pclk的route、eclk的route、fpga fabric,外部时钟引⼊作为主时钟强烈推荐使⽤专⽤pll引脚,ecp5-25中为
报童模型ufo之家网<LOC>_GPLL0T_IN,⽹⼝的输⼊时钟⼀般选⽤带有pclk属性的时钟,ecp5-25PCLKT<Bank>_<0/1>。在我的设计中,涉及的时钟,晶振输⼊、⽹⼝时钟输⼊与输出、sdram时钟。
zipa
接下来讲讲EBR。ebr内容较多,SPR、True-Dual Port RAM、Pseudo Dual-Port RAM、ROM、FIF
O,这⾥主要讲ram(单⼝和真双⼝ram)的三种模式:a,normal模式,写就是写,只有当读信号来到时,输出端⼝数据才会变;b,writethrough模式,写的数据会在下⼀拍或两拍(取决于是否有输出寄存)⾃动输出;c,readbeforewrite模式,写地址中的原始数据会在下⼀拍或者两拍后⾃动输出。另外,仿真中经常需要初始化memory,可以⽤<file_name>.mem⽂件来配置,该⽂件有bit、hex和addressed hex三种形
式,addressed hex⽤来初始化memory中特定地址的内容,未初始化的部分默认为0。
DSP没怎么看过,对其原理也了解很少。只是项⽬中代码优化的时候,⽤到了syn_mulstyle这个原语,解决乘法器不够的问题。当然,对于实时性不⾼的输出,时分复⽤也是常⽤的优化⼿段。另外,乘法器延时与配置有关,输⼊寄存、输出寄存、pipeline。
接下来讲讲PIC,PIC由4个PIO构成,⽽1个PIO⼜是由输⼊寄存模块、输出寄存模块、三态模块构成。位于FPGA左右两边的PIO的输⼊寄存模块具有内嵌fifo,专门为ddr memory设计,可将ddr时钟域转到eclk时钟域。ECP5-25中,位于左右两边的PIO,每16个PIO构成⼀个DQS组,⼀个DQS组中有两个引脚已提前配置,⽤于DQS和DQS#信号,其余引脚可⽤于DQ、DM信号;DQSBUF模块则是专门⽤于调整DQS信号相位;左右两边的PIO也可以组成信号对,⽤于传输差分信号。PIO的直接与sysIObuffer相连,bank4的I/O是没有sysIObuffer的,bank8的I/O与系统配置⼝复⽤,bank的I/O参考电压都可以单独配置。
接下来讲讲serdes,serdes主要作⽤就是将并⾏数据转换成串⾏数据,加快数据传输速率。ecp5-25没有serdes。lattice ecp5系列芯⽚serdes是按dual存在的,ecp5um-45有两个dual,每个dual包含两个通道的serdes,每个通道都是全双⼯的,⼀组收,⼀组发。原则上,只要参考时钟兼容,那么⼀个dual⾥可以⽀持两种协议。diamond提供pcs ip核,⽤于连接serdes和fpga core。在之前的⼀个项⽬中,⽤到了ecp3-150,其中光纤数据传递时⽤到了serdes。ecp3-150有4 quads的serdes,每quad包含4通道全双⼯serdes,项⽬中,⽤2 quads⽤于接收主板传过来的数据,这种⽤途的pcs配置成全接收,协议为G8B10B。每通道serdes最⼤传输速率为3.2G,我们设为2.5G,4个通道总共10G,由于8b10b编码,实际传输为8G,这样1 quad正好带8个 1G⽹⼝数据(3.125G下可带10G);参考时钟选为内部,⽤125M的系统时钟,倍率为20x;数据位宽设置为16;采⽤full模式接收;在lpf⽂件⾥使⽤LOCATE COMP
18号染体
"pcs_inst_name" SITE "PCSx"可将pcs约束在相应的quad上;lsm(link state machine)⽤于表⽰链接同步,规定comma符之间必须包含奇数个数据,否则认为链接错误,4个连续的错误会造成lsm失锁,lsm_status_ch[3:0]_s拉低;rx_los_low_ch[3:0]_s表⽰信号丢失,⾼有效;rx_cdr_lol_ch[3:0]_s表⽰恢复时钟信号丢失,⾼有效。项⽬中,剩余2 quads⽤于收发光纤收发器数据,这种⽤途的pcs配置成收发模式,协议为xaui。前⾯主板传过来的数据经过数据解包、对齐、跨时钟域(pcs接收时钟到系统时钟)等处理解析出⽹⼝数据,然后再打包成xaui需要的数据格式(系统时钟到pcs发送时钟,64
bit),经过xaui IP发送给pcs IP,完成发送;收光纤收发器数据过程类似,只是pcs到xaui时需要先将4个通道的接收时钟都转换为第1个通道的时钟,同时xaui IP出来的数据也需要进过调整后才能进⾏解包。每通道传输速率设为3.125G,参考时钟选⽤外部156.25M晶振;数据位宽为16。
最后讲讲FPGA配置吧。ecp5-25有两种配置⽅式,⼀种是通过TAP(test access port),⼀种是通过sysConfig⼝。FPGA是基于sram结构的,其上电配置⽂件需要存储在外部flash,配置⽂件⼤⼩与使⽤逻辑资源以及初始化ebr个数有关。项⽬中⽤到的是sysConfig ⼝配置,采⽤MSPI模式,即CFGMDN为“010”。需要注意的是上电配置完成过后,MSPI模式下的sysConfig⼝都会变为⾼阻态,这时miso、mosi、csspin都可以⽤作I/O⼝,但是MCLK必须要经过不⾏,且MCLK⽤作时钟⼝时必须经过USRMCLK原语调⽤,⽽后才能继续读写slave flash。lattice芯⽚上电配置的流程⼤体如下:上电,检测电源是否稳定(具体指标可参考芯⽚的ac参数,主要是Vcc、
Vccio8、Vccaux)。当电源条件满⾜要求时,POR(power on reset)电路会释放rest strobe,done、initn信号被拉低,进⼊初始化状态,清除之前配置的sram。当初始化完成(1,program信号被拉⾼;2,initn信号被拉⾼(初始化出问题则会被拉低);3,tINITL初始化时间到;三个条件同时满⾜)则进⼊配置阶段,配置阶段有问题,initn信号也会被拉低。配置完成,则进⼊唤醒状态:1,global output enable信号拉⾼,I/O⼝退出⾼组态,2,global set/reset信号被释放;3,global write disable信号被拉低,ram可以被操
车空调
作; 4,done信号被拉⾼,配置完成,进⼊⽤户模式。对于双启动模式,如果加载数据超时或者crc校验错误,设备就会进⼊golden取加载。Diamond Deployment Tool⼯具⽤于⽣成双启动或者多启动⽂件。

本文发布于:2024-09-22 21:29:33,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/319474.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时钟   数据   配置   信号   模块   寄存   输出   模式
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议