dr2001 发表于 2009-12-27 21:16:53

我没问题。多层互联,三明治结构,各自独立模块。

方便的话用1.27的排针吧,体积能小一些。
互联不是问题,只要定义好引脚的功能和尺寸,就是做不同的子版了,开发验证应该都不困难。

wenming 发表于 2009-12-27 21:18:42

不建议使用1.27的排针,太容易损坏了.建议使用2.54的.

minux 发表于 2009-12-27 21:56:16

如果没有信号完整性的问题,我也觉得2.54的排针最好。

dr2001,控制GND的NMOS你有啥推荐的么?
大家觉得IIC的扩展用我上面说的行不?PCF8574我应该有直插的一管,如果单独做子板估计面积上问题不大,所以用直插的就行了吧?
用3片它估计也是够面积的,看布线的压力了。

下一步我们定义下各个板之间的接口吧。

MCU板:AT91SAM3U4E + 16-bit SRAM(容量?,可以不焊接) + NAND + 电源芯片 + USB接口 + SD卡座 + JTAG座 + RS232(?)
       需要连其他板的信号:总线信号,AD12B的几路,IIC+SPI+SSC+USART,适当GPIO,电源(5V, 3.3V, 1.8Vddout?)
FPGA板:XC3S250E-4PQ208C + SDRAM(容量?,可以不焊接) + 电源芯片
       需要连其他板的信号:电源(5V, 3.3V),大量IO
IO板:16 IO,加上尽可能多的Input-only,16路应该够了,Input-only的就用16T245之类做电平转换,可以考虑
他们可用跳线选择单独的Vref,抑或是跟16IO选择相同的Vref。在Vref后面最好加一个三极管+LED指示Vref加电。
       需要连其他板的信号:电源(5V, 3.3V),大量IO, IIC信号,AD采样信号

电源尽量用DC-DC吧,可能耗电比较大,考虑到脱机需求,最好加上5V外接电源插头。

ps: 设计SAM3U电路前请务必阅读Errata文档……

qiujianben 发表于 2009-12-27 22:01:53

SAM3U工程样片 AD12B 的功能在有问题,请多注意.

h2feo4 发表于 2009-12-27 22:04:12

刚才测试了下模拟开关,没法用
在5V电压,50MHz切换速度,100欧电阻负载下,输出幅值不到0.1V了

minux 发表于 2009-12-27 22:09:28

【203楼】 qiujianben

不用0/1号输入就行了吧?
谢谢提示,我已经改了原帖,加上了务必详细阅读errata文档。

minux 发表于 2009-12-27 22:13:48

【204楼】 h2feo4 无机酸

那就1t45方案吧,这个肯定可靠,TI/NXP的数据手册上到最低支持电平都能保证至少50Mbps。
MOS管方案还得去调查下货源问题……

h2feo4 发表于 2009-12-27 22:30:18

讨论一下排针的尺寸和数量
我的建议
每条2*50,,板子两边各一条,共200 Pin

至于选1.27mm/2mm/2.54mm各位讨论一下
其实我有点担心2.54mm的插拔太费力了

minux 发表于 2009-12-27 22:35:42

【207楼】 h2feo4 无机酸

嗯,稍微多点pin,这样多插入点GND,信号串扰小点。

呃,要说难拔插,那2.54的确是比较严重,可是1.27的确是有点太脆弱,容易弯……
要不2.00的咋样?不过我没用过这个,不知道改善如何。

h2feo4 发表于 2009-12-28 00:28:21

to 【208楼】 minux 啊啊?
因为要用贴片插针/插座,有点担心插拔力太大会导致焊盘脱离
所以我个人还是比较倾向1.27mm板的
要不然单独做一个1.27mm-2.54mm转接板?方便兼容/调试

minux 发表于 2009-12-28 00:43:20

【209楼】 h2feo4 无机酸

为啥不用直插的排针啊?贴片的不能频繁拔插啊。
如果用1.27的排针,那不能插杜邦线还确实是个问题,连用示波器测量都比较麻烦……

h2feo4 发表于 2009-12-28 00:46:04

回复【210楼】minux 啊啊?
-----------------------------------------------------------------------

直插的很难做成“堆叠”的,很难在同一位置正面放插针,背面放插座
虽然有这样的接插件(类似PC104),但是相当贵
如果用1.27mm贴片接插件,插拔力比较小,寿命还是可以接受的

minux 发表于 2009-12-28 00:49:04

【211楼】 h2feo4 无机酸

哦,你是想在同一个位置放排针啊,呃,如果我们的设计真的需要动态加入新的模块倒是可以必须这样。。。
如果就是插现有的几块板,错开插座也没事儿吧?顶多是IO板上多两排针……

或者,用别的办法固定下贴片的接插件?比如说几个位置的针拔掉,用线或者其他的东西绑上或者焊接,
如果两侧同样位置这样的话,就没事儿了。

h2feo4 发表于 2009-12-28 00:50:52

回复【212楼】minux 啊啊?
-----------------------------------------------------------------------

错开十分影响美观啊
双排贴片接插件通常下面有定位销的,估计问题不大

minux 发表于 2009-12-28 00:53:52

【213楼】 h2feo4 无机酸

适当位置拔掉几根,在旁边留下足够大的孔,可以根据情况再固定下,我还是有点怕万一弄掉了……
如果上下两排不对称去掉几根,还可以防止插反。

h2feo4 发表于 2009-12-28 00:56:19

回复【214楼】minux 啊啊?
-----------------------------------------------------------------------

我觉得目前贴片插针/插座没那么容易坏,而且现在的板子铜箔剥离强度也比较高,画板时候注意照顾一下,应该没问题的
或者贴片、直插位置都留下,想焊哪个焊哪个

minux 发表于 2009-12-28 00:59:26

【215楼】 h2feo4 无机酸

我主要是考虑有的廉价PCB打样的质量不高……
恩,贴片的直插的都上是个不错的办法。如果怕弄坏的,就牺牲点美观,这个我觉得可以接受。

h2feo4 发表于 2009-12-28 01:06:21

回复【216楼】minux 啊啊?
-----------------------------------------------------------------------

直插的其实比较难布线,因为脚很密,焊盘间走线相当受限制,用1.27mm排针就几乎不可能了

minux 发表于 2009-12-28 17:27:47

【217楼】 h2feo4 无机酸

先看看吧,如果发现布线很困难,那直插的用间距稍微宽点的也行的。
另外,PCB的工艺也不能用太好的,不然自行DIY的时候可能成本上升。

8mil/8mil, 0.2mm孔似乎是合适的?有没有地方连这个工艺都做不了的?

h2feo4 发表于 2009-12-28 17:38:06

回复【218楼】minux 啊啊?
-----------------------------------------------------------------------

0.2mm孔很多地方都做不了
我这里一般行情是6mil/6mil线,0.3mm孔
咱们肯定不会到处做板的
肯定是一次做一批,然后再分发,所以工艺选高一点也没关系,可靠还是第一位的
每人都去开板的话工程费贵死了

minux 发表于 2009-12-28 17:44:34

【219楼】 h2feo4 无机酸

恩,好,反正工艺不要要求太高就行了。
要都是双层版吧,倒还不算太贵(三块板拼在一起,自己切割,100元足以),
反正到时候4/6层的时候就肯定得是在一起做了。

前期这个还算是个验证性质的,等各个部分都确定了,就可以开个整体的4/6层板了,
不过这个似乎得等到SAM3U量产以后再说了。

dr2001 发表于 2009-12-28 19:20:46

一般来说,0.15/0.15mm的线,0.3/0.5mm的孔,通常是没问题的,也不用加钱什么的。

我看过一些网站的参数介绍,这些属于通常加工能力覆盖的范围。0.5mm QFP连续打孔也没什么问题。如果没有布线困难,尽量还是不要用更高的工艺了。

minux 发表于 2009-12-28 19:54:59

【221楼】 dr2001

我这里有些样板厂要求8mil/8mil的线…… 0.15mm是做不了的……

h2feo4 发表于 2009-12-28 21:44:24

回复【222楼】minux 啊啊?
-----------------------------------------------------------------------

我这里板厂收文件经常只看外形尺寸,不看内容的,4mil都一个价

minux 发表于 2009-12-28 22:12:14

【223楼】 h2feo4 无机酸

哇,那看来我以后制版都应该去你们那里做了……

dr2001 发表于 2009-12-28 22:12:57

-_-bbb

现在讨论这个略早。
PCB工艺到时候心理有个数就行了,0.2/0.2mm (8/8mil)线;0.3/0.6mm孔应该是相对比较保险的参数了。这个要是做不了,那板厂工艺实在有点……
布线空间不比这个糟糕的话,用这个就可以了吧?

minux 发表于 2009-12-28 22:36:13

【225楼】 dr2001

恩,反正就是除非必要,尽可能不用更好的工艺即可。
你说的这个工艺我觉得肯定没问题了。

开始画图吧。三人分工下吧。
未完成的图,我建议通过邮件交流,同时在论坛上上传pdf供其他网友评价吧。

h2feo4 发表于 2009-12-28 22:39:37

回复【226楼】minux 啊啊?
-----------------------------------------------------------------------

这样如何:
首选0.2mm/0.2mm(8mil/8mil)线宽,0.3mm/0.6mm(12mil/24mil)过孔
备选0.15mm/0.15mm(6mil/6mil)线宽,0.3mm/0.5mm(12mil/20mil)过孔

先要商定接口,然后可以分工画板
同意通过邮件交换半成品图纸

minux 发表于 2009-12-28 22:56:59

【227楼】 h2feo4 无机酸

ok,
恩,接口定下来最好做成单一的一个器件封装,这样用的时候不会出现距离的问题。

先说MCU板:
这个没的说,肯定是得引出所有GPIO,96个,去掉USB的,NAND/SRAM以及SD卡的,留UART口在MCU板上,焊不焊接再说。
其余USART,SPI,IIC全部放下来。
其外部总线是全部接下来还是选一部分地址线接下来?SD卡部分接下来么?(似乎没啥必要我觉得)

然后是PLD板:
这个没啥可讨论的,尽可能把全部IO接出来即可;是否需要板子上留个SPI配置Flash的地方(可不焊接)。
SDRAM相连的线不需要接出来吧?

最后是IO板:
IO 16个,32根,input-only 16个,使用74LVC16T245做电平转换,加上IIC的2根,一共是50根。

希望是,如果MCU板直接插在IO板上,至少能把SPI/SSC口接到4个IO的数据线上,其余全接在GPIO上即可。
SPI口注意下,需要一个内部回环,也即SPI/SSC口是一主一从,时钟接在一起(SSC的TF/RF不用接),同时RD和MISO接在一起,
这几根用电阻或者跳线即可,为了兼容不用FPGA时候的情况。

电源部分,MCU板向下提供5V/3.3V两种电源,其余的电源在相应的板子上自行产生(SAM3U自己稳压的1.8V要不要拉下来?)。

h2feo4 发表于 2009-12-28 23:44:55

回复【228楼】minux 啊啊?
-----------------------------------------------------------------------

同意做成封装
MCU板无意见,觉得SD卡/本地储存器没必要引出
PLD板无意见,本地储存器没必要引出,细节有待讨论
I/O板建议增加Vref输出供MCU采样

至于IIC的用途,我有点想做成类似内存条那种用法,用于识别每块子板的信息

另外,到底是使用哪种 1.27mm/2.0mm/2.54mm 排针/排座?
1.27mm 最大尺寸 2*50 Pin,但是必须使用6mil线宽/线距才能布通
2.0mm最大尺寸 2*40 Pin,可以用略粗的线,但是长度已经达到80mm,板子尺寸小不了
2.54mm 最大尺寸 2*40 Pin,布通很容易,但是长度超过100mm,板子面积会非常大

还有,有贴片/直插/还是共存?在布线上纯贴片的容易一些,而且美观,可以垂直堆叠
直插的结实一些,但布线空间比较狭小,很难垂直堆叠

minux 发表于 2009-12-29 00:20:58

【229楼】 h2feo4 无机酸

MCU的外部总线得引出吧,我们不是要和FPGA并行接口么?SD卡我也觉得没必要引出。
IO板的Vref采样我前面还提过,上面说的时候忘记了……

用内存条存SPD的方法来识别板子的办法赞,每块子板上加一片24LC01之类的EEPROM,用来存放板子的版本参数
和必要的其他参数。每类板子我们规定好一个iic地址,以后还可以扩展更多类型的子板。同时每类板子还可以
存放它的需求,比如接两块PLD板子一般没啥意义,但是接两块IO可能是有用的。
啊,考虑到这些,似乎必须设计成总线的形式才好接口了啊?

至于接插件的问题,1.27贴+2.00插?抑或是2个1.27贴,一个备用。

还一个问题,FPGA板如果夹在中间,除非所有管脚都引出来了,否则要测试可不容易……

电源方面有啥意见没?

h2feo4 发表于 2009-12-29 00:22:15

另外,如果希望MCU板直接插IO板时也能实现部分功能的话,就需要在FPGA板上额外做一些处理
FPGA板就必须保证这些相关引脚上下分离(同一个位置上正面、反面引脚属于不同网络)
否则FPGA板就相当于被旁路了

个人还是推荐1.27mm 2*50贴片排针/排座,为了保证焊盘剥离强度,再部分焊盘内放置若干过孔即可
外面放4列2.54mm用于备用/测试?

电源还在思考中,初步觉得5V/3.3V共用,其他电压各管各的

h2feo4 发表于 2009-12-29 00:27:48

IIC总线的问题,我建议不用24Cxx,而是放一块ATmega48在上面
这样地址空间就非常多,也有更完善的功能,支持多主多从
顺便还可以用它选择FPGA的配置模式之类的(电子跳线)
用24C01的话,如果有些不明真相的人因为手边没有24C01,而放上一块24C02/04代用就惨了
而且可用的地址空间太少了

minux 发表于 2009-12-29 00:31:50

【231楼】 h2feo4 无机酸

MCU上面可以加点跳线来连接那几根线。FPGA还得考虑下如何支持……

恩,那第一版就先2*1.27mm贴吧,多放点过孔,也就是中间对称的地方多放些GND,这样还有别的好处。
是应该放一些用于测试的2.54mm排针。

电源5V得给下来,用来推动PMOS管。其余的部分公用3.3V我觉得没问题,但是MCU板就必须要DC-DC,按照1A设计,同时
要加上外部电源插口。

啊,放ATmega48的计划不错,估计IO部分不需要PCF8574之类的了,用单片机还能更灵活点。
这样AD让AVR做也可以,不用费尽拉Vref上到MCU板了。

h2feo4 发表于 2009-12-29 00:35:13

回复【233楼】minux 啊啊?
-----------------------------------------------------------------------

用贴片排针的话,FPGA板把线布开倒是不成问题(保证上下分离),就是线稍微多点罢了

h2feo4 发表于 2009-12-29 00:47:19

至于对两块IO板的兼容,我有一个阴谋
就是IO板设计时考虑两边对称,安装时一块正着插,一块旋转180度插,分别对应FPGA上不同IO
这样就可以保证兼容两块IO板而不用总线了

h2feo4 发表于 2009-12-29 00:59:45

IO板上的ATmega48用5V电源如何,这样就省得给PMOS做电平转换了,可能需要在IIC上装两个小MOS管/三极管做电平转换
另,如果IO板上的ATmega48的IO数不够用,可以考虑使用ATmega16,甚至ATmega169

k0059 发表于 2009-12-29 09:57:20

建议用at91sam3u + cpld来做

sam3u: 96Mhz contex-m3, 256K flash, 64K ram, 还支持480M的usb 2.0 high speed

h2feo4 发表于 2009-12-29 10:51:36

回复【237楼】k0059
-----------------------------------------------------------------------

上面讨论的一直都是SAM3U+FPGA的啊

k0059 发表于 2009-12-29 11:01:40

我已经用sam3u + EPM570实现了一个简单的调试器

我可以把硬件资料共享出来,在这个基础上做?

我建了一个高级群: 77124928

有兴趣的到群里来聊吧

dr2001 发表于 2009-12-29 11:16:43

对227#的工艺参数没疑问。

对放出来的IO接口:
SAM3U:SD没必要放出来;并行总线放出来,还有串行的接口,数量不少。
5V电源要出来;3.3V是每个板子自己处理,还是统一供电?更低的电压用的少,自己处理就行了。
AD需要一两路差不多了。

FPGA本地存储器不要放出来了,要不然布线麻烦。如果可以,尽量兼容SRAM/SDRAM两种封装。毕竟SDRAM控制器写起来麻烦一点。
适当考虑多个FPGA叠层的情形?

板卡识别我觉得不要用AVR为好,现在已经两套开发环境,再多一个……大家开发的话,是不是就过于复杂了?
不知道STM32有没有便宜,能满足要求的芯片?价格我不太熟悉。

h2feo4 发表于 2009-12-29 11:30:02

回复【240楼】dr2001
-----------------------------------------------------------------------
个人认为3.3V共用比较好
FPGA板堆叠感觉比较困难
AVR和24C都留位置就是了,反正面积也不大,想焊哪个焊哪个
估计AVR固件基本不用改,就当一个IIC的IO扩展就行了

stm32倒是也可以考虑,不过有点大材小用了
考虑一下

h2feo4 发表于 2009-12-29 12:27:36

堆叠方案讨论
符号定义,M代表MCU板(含通信接口,3.3V电源),F代表FPGA板,O代表IO板
可能的堆叠方法

MO             MCU板直接插在IO板上,相当于最小系统
MFO            MCU板/FPGA板/IO板,之前一直讨论的标准形态
MFOO'          MCU板/FPGA板/IO板/旋转180度的IO板,IO扩展接法
MFOFO          MCU板/FPGA板/IO板/FPGA板/IO板,增强型扩展接法
……         其他接法

按我的思路
M只能有一块,而且在最上面
F可以有多块,但是不能相邻,需要中间隔O、O'或者OO'
O可以有多块,允许两块相邻,插接方向相反,即一块O,一块O'

M-F通信采用总线结构,允许一M多F
M-O通信采用普通连接,只允许一M一O
F-O通信采用普通连接,允许一F二O
不允许M-M、F-F、O-O直接连接
不允许O在F上面

h2feo4 发表于 2009-12-29 14:30:44

刚才与 k0059 网友稍稍交流了一下,他也在做类似的东西,而且已经实现了部分功能,相当厉害

minux 发表于 2009-12-29 18:43:18

【236楼】 h2feo4 无机酸
用5V驱动AVR可以,不过SDA需要双向电平转换……

【237楼】 k0059
用MAX II的话,硬件上有点不够灵活。同时,MAX II的Flash只保证能擦写100次…… 做开发很麻烦。

【240楼】 dr2001
3.3V统一供电吧,节省成本,毕竟几乎每块板都要用它。
stm32就参考armok的价格即可,没找到零售的更便宜;有合适的,不过我也觉得有点大材小用。
用片AVR足够了,而且逻辑也并不复杂,主要是考虑到和PCF8574之类价格不会差太多,但是灵活性
有很大进步,以后再改进的时候根据情况可以给换掉。
不过,ATmega48PA的TQFP32封装的IO数不够多,如果加这个单片机太贵(PCF8574是4元左右,3片的话
12元左右,单片机不能超过15元吧?) 我们至少需要24根IO,那么估计得上片ATmega16,从价格考虑,
似乎ATmega169PV-8AU比较合适(不过这个又有点过大了?)。

【242楼】 h2feo4 无机酸
恩,同意你的构思。但是如何实现呢?

【243楼】 h2feo4 无机酸
我没QQ,能不能大体介绍下k0059的项目?

h2feo4 发表于 2009-12-29 18:48:25

回复【244楼】minux 啊啊?
-----------------------------------------------------------------------

双向电平转换有办法,以前有个帖子介绍过,就用一只MOS管,我找下
找到了,在这里
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3431785

晚些时候我贴一个印脚布局草稿

k0059网友用 sam3u + EPM570 实现了 ARM 调试

minux 发表于 2009-12-29 19:05:16

回复【245楼】h2feo4无机酸
-----------------------------------------------------------------------
k0059网友用 sam3u + EPM570 实现了 ARM 调试
-----------------------------------------------------------------------
某个TCK速度下向内存下载速度多快?我最好奇这个参数。另外支持哪些ARM架构?

期待你的布局草稿。

h2feo4 发表于 2009-12-29 19:07:12

回复【246楼】minux 啊啊?
-----------------------------------------------------------------------

我没仔细问,我可以把你的邮箱告诉他么,这样你可以和他直接沟通
他以后也会经常关注这个帖子的

yzhu 发表于 2009-12-29 21:23:07

基于FET Switch的双向电平转换器件有很多,比如TI的SN74CBTD3861,我记得TI有指南讲述如何使用类似器件。

h2feo4 发表于 2009-12-29 22:00:11

引脚布局草稿(因为IO数量有限,故此版本暂不支持多个FPGA板堆叠)

SAM3U板,网络命名按直接插在IO板上时的考虑
所有焊盘在正面和背面的定义相同(8个墨绿色格子除外)
PA/PB为多功能IO的控制线
DA/DB为多功能IO的数据线
IA/IB为input-only输入线
数据总线/地址总线/控制总线/SPI/SSC等可以放置在任何一个白背景的格子中(细节待确定)
墨绿色格子保留,用于付辅助识别相邻的板子类型,而且正面和背面分属不同的网络
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_520435.PNG
(原文件名:20091229B.PNG)

FPGA板
正面连接SAM3U板,总线的位置待定
背面连接IO板,PA/PB/DA/DB/IA/IB连接第一块IO板,PC/PD/DC/DD/IC/ID连接第二块IO板
两面的焊盘大多属于不同的网络
墨绿色格子保留,用于付辅助识别相邻的板子类型,而且正面和背面分属不同的网络
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_520436.PNG
(原文件名:20091229C.PNG)

IO板
PA/PB为多功能IO的控制线
DA/DB为多功能IO的数据线
IA/IB为input-only输入线
墨绿色格子保留,用于付辅助识别相邻的板子类型,而且正面和背面分属不同的网络
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_520437.PNG
(原文件名:20091229D.PNG)

dr2001 发表于 2009-12-30 09:43:42

基本的引脚分配,支持一下。

预留的Note:
- IO板预留SAM3U CLK Loop的跳线;SAM3U串行IO信号到相应引脚的电阻/跳线位置。
- FPGA板IO(D* & P*)尽量用差分对,比如,0/1是一对,2/3是一对,必要的时候可以直接支持高速差分输入。这样可以直接提供至少8对差分IO。

boycn 发表于 2009-12-30 11:13:47

mark

h2feo4 发表于 2009-12-30 11:16:05

回复【251楼】dr2001
-----------------------------------------------------------------------

好的,考虑调整一下

minux 发表于 2009-12-30 11:58:34

【247楼】 h2feo4 无机酸
好的。

【250楼】 h2feo4 无机酸
还没细看,先顶下,这个肯定是很大的工作量~

【251楼】 dr2001
恩,赞同你的关于差分线的想法。
IO不止需要CLK loop(TK, RK, SCK),RD和MISO也最好接在一起,接受TDO的数据。

dr2001 发表于 2009-12-30 12:27:07

辛苦了。

FPGA直接支持差分,我的看法,主要是布线和分配引脚的时候注意一下,到时候方便直接支持。路数不是主要的问题。

另外,鉴于你的设计是支持多路FPGA叠层,我觉得还有一些问题需要考虑:
- 全局的Trig引脚?
- 全局的ID信号?
- 全局的时钟信号?
总之就是多个FPGA之间的同步问题。
另外,这种多FPGA情况,怎么完成配置?并行肯定有问题了,Slave Serial的引脚连接方法需要考虑一下?

麻烦思考一下使用什么好方法解决?我想到的就是同步信号了 -_b

多FPGA的情况下,我认为应该使用从串配置,FPGA配置引脚等等都要出现在连接器上。
FPGA板子因为正反面不同,所以可以容易做成一串的。JTAG在每个FPGA板子上独立调试用。
这样,组装起来后,SAM3U设为0,按照指定方向标记为FPGA 1..N,用来确定功能?
还是怎样?



SAM3U原理图的一些Note,画图的时候需要注意一下的:
- 如果不支持MMC的8Bit模式,MCDA用不到,可以用于10Bit ADC;
- SAM3U的USART新增 SPI 的支持,至少需要TXD/RXD/SCK信号;根据主还是从,需要CTS/RTS信号。
因此,考虑TXD/RXD/SCK/CTS/RTS优先引出到IO端子上。在没有FPGA的情况下,用于复杂协议的支持。

SAM3U的SPI结合IO的功能分配我考虑一下,其本身的性能有点意思。
这个引脚的互联在IO的板子上做,SAM3U板子上只是引出而已了。

h2feo4 发表于 2009-12-30 12:55:20

回复【255楼】dr2001
-----------------------------------------------------------------------

目前的两条2*50排针,除去电源和地、IO及特殊功能必须占用的引脚,只剩下不到40个
放8-bit总线够了,放16-bit总线明显不够,目前如果堆叠多块FPGA,除第一块板子外其余只有8-bit总线
或者考虑适当增加排针数量,例如4条2*36,这样就能实现较完整的功能,而且灵活性更强

FPGA配置做成链状很容易,Slave Serial是个不错的注意,今天晚些时候仔细看一下

minux 发表于 2009-12-30 12:59:06

【255楼】 dr2001

恩,SAM3U的SPI口足够快了,用来给FPGA加载没啥问题。
如果多FPGA的话,就应该串成串用slave serial。

多个FPGA的话,似乎事情就很多了。首先是,多个FPGA之间如何互联?他们分别要承担何种工作(是简单的扩展外部IO数,
还是新的FPGA也承担逻辑工作)?最简单的就是把FPGA挂(可以不同于MCU的外部总线)总线上……但是一般也是需要独立的
互连的,比如异步消息的通知之类。

FPGA时钟共享这个没问题,不过用PLD板子上需要不需要单独的时钟?似乎是需要的,得上个50MHz的有源晶振。

minux 发表于 2009-12-30 13:03:48

【256楼】 h2feo4 无机酸

40个空余脚,放16位总线倒是也行,也就是地址线不够多,这个可以有别的办法(比如0号地址为间接寻址寄存器,
1号地址读写的时候实际对应到0号寄存器中的地址;然后剩下的地址空间分配给经常要访问的地址,如果是数量
很大的数据又不需要随机访问的话,直接占用一个地址用FIFO)。我觉得总线宽些好点。

目前看来,MCU板设计得好点是最重要的,因为在量产前,不好换它的设计。

我想问下,FPGA叠层的主要目的是啥?是扩展IO还是别的什么?如果是想支持任意多的FPGA,那除了挂在总线上
几乎没啥别的办法……

h2feo4 发表于 2009-12-30 13:10:12

回复【258楼】minux 啊啊?
-----------------------------------------------------------------------

允许FPGA堆叠是考虑未来的扩展性,不过也许有点太远了,【240楼】 dr2001 提出我就考虑进去了
一块FPGA带32个全功能IO已经足够满足大部分应用了,不做堆叠也可以

dr2001 发表于 2009-12-30 15:28:00

堆叠主要是远期的考虑。我认为,堆叠,可以想到的主要考虑以下两类主要功能:

1、扩展IO的数量:
即SAM3U,IO,FPGA,IO,FPGA类似这样的堆叠结构。也是上边我们讨论的。
这种情况,支持起来也不是太困难;FPGA之间不需要复杂的通信机制,都挂在MCU的总线上就好了。
大宽度,一定深度的逻辑分析仪可以应用这样的结构。

2、类似流水线的长程数据处理:
如果数据处理比较复杂,可能会用到这样的情形。在堆叠上,使用MCU,IO,FPGA,FPGA,IO,FPGA,FPGA这样的结构。
因为目前的FPGA板子双面IO不同,也是可以直接应用的。板卡设计的时候支持该功能即可。

这里提出来,是因为按照上述功能设想,实现这些对目前的设计结构影响不大。可能只是增加一两个小元件,注意一下引脚顺序什么的,但是大大增加了灵活性,如果能实现,为什么不预留了呢?



具体工作情形的设想,大家看看有没有什么疏漏:
- 硬件上,我们给定了配置顺序,即:MCU(/IO/FPGA)这样。
即:只能有一个MCU板,主控;FPGA板可以和MCU/IO/FPGA连接;IO一边必须和FPGA连接,另一边可以和MCU/FPGA连接。
【问题】 堆叠顺序插错了,是否方便软件检测出来?

- FPGA从串配置,配置完成后,DIN/CCLK/DOUT可以用于普通双向三态IO。配置时,CCLK是全局的;DIN/DOUT是串联的。
【问题】 向一个尚未完成配置的FPGA DIN输入错误的配置数据流,其DOUT是什么行为?根据Xilinx手册,串行多芯片配置的描述而言,猜测DOUT应该输出固定电平。

- 因此,可以增加一个全局的引脚,在配置完成后,这四个引脚可以用来模拟JTAG状态机,实现一个特别的,单数据线双向通信链。
不增加引脚貌也可以;一个Mode,一个CLK辅助,可能更方便;带冲突检测的UART也行。这个多出来的Mode引脚,可以和全局的Trig功能复用。
就是MCU用IO访问第一个FPGA,告诉他,我要访问下一个,然后就可以继续,这样,这个协议可以定义的。总之,软件是可以解决的,不需要硬件做太多工作。而且粗想起来也不是太复杂,尤其是有CLK的情况下。



如果DIN/DOUT在配置过程中,是我猜测的那种行为,那就OK了。
由于我们的IO/特殊引脚IO位置固定,因此,我们可以针对所有支持的FPGA板卡,编译特殊的,一致的FPGA固件。
- 上电,MCU开始配置所有的FPGA。
- 把存储器中保存的默认固件,一个一个的发下去,直到Done引脚电平升高。如果有FPGA固件A/B/C 3个,就按照ABCABC这样循环发下去。
这里的关键,就是假设FPGA在配置成功前,会Drop DIN输入的错误数据;成功后,数据直接DIN-DOUT。
软件上,可以设置最多配置多少个板卡。。。这样的。MCU能知道,在打出去了N个固件之后,配置完成。
- 用模拟的JTAG,打一堆数据下去,因为是串行的,用于ID每一块FPGA板卡。由于FPGA板卡正反面是隔离的,显然我们也可以完成检测FPGA之间的堆叠顺序的工作。
这里,MCU能知道,从自己开始,沿着DIN这条线,都有哪些FPGA在串上,他们的堆叠关系如何。比如,有ABCDE,5个FPGA板,其中,AB/BC之间有IO板隔开,CDE是直接连接在一起的,CD/DE分别挨着。
这里需要IO板有正反隔断的IO Pin,用于FPGA堆叠识别。
- 根据收集到的信息,按照顺序,重新下发所有FPGA的,正确的固件。
MCU可以向ABC发布推动IO的固件,DE发布Bypass的固件。或者用户可以给定,三块的是咋地用等等。。。

很啰嗦,基本上说明了设想他怎么工作的。


对现在板卡设计增加的Note:
- FPGA使用从串配置;FPGA板卡的DIN/DOUT要能串起来;CCLK提供给所有的FPGA,并连接到FPGA的全局时钟,(MCU拿这个输出全局时钟给FPGA)。
- FPGA的nProg,nInit,Done需要并联后拉出来,反馈到MCU。
- FPGA有全局的Trig等信号,不是必须。
- FPGA板有LED或者什么方法,表明当前自己的编号/身份。
- IO板要有一个双面不直通的信号,让FPGA用来检测堆叠关系。

h2feo4 发表于 2009-12-30 18:26:32

回复【260楼】dr2001
-----------------------------------------------------------------------

一个一个说
目前的排针数量不足以支撑完整的16-bit总线
留足的话,建议排针使用4条2*36的,尺寸/成本略有增加
考虑对FPGA-FPGA直接连接的支持

至于叠放顺序,本质上没有问题,不过按我的设计是一块FPGA板可以带两块IO板
IO板可以分为几类:
标准IO板:16路 super-multi IO
输入IO板:32路 input-only
差分IO板: 16对 differential pairs
还可能有隔离IO板、多路AD板、高速AD板、多路DA板、高速DA板……

我在设计布局时已经考虑如何检测叠板顺序,包括IIC和部分上下分开的预留印脚(见表格中的墨绿色格子)

至于芯片配置,仍然可以使用并行配置
问题是,如果混用Altera/Xilinx甚至其他家的FPGA怎么办,因为不排除以后FPGA板可能使用其他公司的
我觉得应该通过IIC让每块板上的单片机控制FPGA的配置模式,有些FPGA可以考虑从本地FLASH配置
这个问题略有点麻烦,须深入讨论
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_520739.PNG
(原文件名:Slave_Parallel.PNG)

同意使用全局JTAG接口,有点类似PCI,但一个问题是不同芯片的JTAG电平不同怎么办,来回转么

每块板上肯定要添加若干状态指示灯

考虑板子可能堆叠较多,要不要做个单独的电源板?

越做东西越多了,不过讨论总是无害的

h2feo4 发表于 2009-12-30 18:29:33

我要估算一下板子尺寸,不能搞得太大了

astudent 发表于 2009-12-30 18:53:08

关注

h2feo4 发表于 2009-12-30 19:01:09

初步尺寸,约70mm*100mm,差不多一块2.5寸硬盘的大小,考虑到侧面要留出调试用的2.54mm插针,所以两边可能需各要向外扩展15mm
图中网格尺寸为100mil,三个芯片封装分别为TQ100/TQ144/PQ208,供参照
排针是4条2*37,1.27mm间距,脚数对于目前应用绰绰有余
如果要想兼容未来的32-bit数据,32-bit地址总线,板长还需要再增加一点,如果只是32-bit数据,无地址线的话就不用延长了
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_520747.PNG
(原文件名:20091230A.PNG)

可能还需要考虑一下辅助固定的螺钉孔位置

dr2001 发表于 2009-12-30 21:19:35

To 【261楼】 h2feo4

考虑堆叠的情形下。

引脚总数量受PQ208这种易焊封装限制,约120 InOut/20 InOnly。
按照16Bit SDRAM预留本地器件接口,约40 IO不能连接到连接版。考虑LED等,预留60个是富裕的。
故本地可以用于SDRAM,SRAM,AD,DA,etc。这样约70 InOut,20 InOnly可以用于互联端子。两条2x50应该差不多了,更多的排针,没有那么多FPGA引脚可供分配。

要支持堆叠,需要讨论出一个堆叠的规则,这样才有足有的引脚资源,否则比较渺茫。

FPGA配置,通用的话,自然是加芯片独立控制,但是这样实现的软件复杂度在迅速上升,成本也会高,好处是芯片选择,灵活性,大了很多。
无论是基于并行,还是串行,不用附加芯片的话,需要逐案例讨论,工作量比较大。如果我们要通吃FPGA,那就增加芯片负责配置好了。预留标准接口和协议。



讨论到这里,有灵活过头的趋向,就是回到开始的问题:
设计的这些接口,是只支持选择好的那些系列的芯片?
还是什么芯片都可以拿来用,接口只是一个标准的接口?

前者好说,后者会涉及很多取舍。

h2feo4 发表于 2009-12-30 21:29:24

回复【265楼】dr2001
-----------------------------------------------------------------------

很多东西肯定是有些灵活过头了,但要把线都布开,板子也不可能做得太小
既然板子有这么大面积,接插件可以留足余量

对于开发阶段来说,对有限的资源尽可能的重用是很重要的
但话说回来,考虑得太复杂,反而会拖延时间,导致最后没有结果

所以这样如何
在板面积有一定余量的情况下,两边尽量把排针放满(但不一定都焊接)
目前只考虑已选定的芯片,略兼顾未来的扩展性,暂未用到的插针声明保留即可

dr2001 发表于 2009-12-30 21:59:10

OK,没问题。

堆叠方式略改一下:MCU > FPGA > IO > FPGA > FPGA > IO > MCU > FPGA ... etc 这样。
MCU和IO方向是固定的,FPGA能来回转。这样对外接口的方向固定,无论插入多少个FPGA模块。

要求MCU,IO用到的接口是对称的。

你觉得如何?

h2feo4 发表于 2009-12-30 22:23:54

回复【268楼】dr2001
-----------------------------------------------------------------------
同意,即不考虑一块FPGA板带多块IO板,省不少事了

minux 发表于 2009-12-30 22:52:40

【265楼】 dr2001

如果单纯考虑FPGA封装,倒是有PQFP240的,比如Cyclone1/2/3都有。
EP1C6/12;EP2C20;EP3C16/25/40
分别能提供:
185/173;142;160/148/128个IO(这些没有Input-only的管脚)。

美中不足是,他们的容量都偏大,除了EP1C6,不过他的性能又不如S3E。

这几款的性能大概是这样C1 < S3A < C2 < S3E < C3,其中S3A跟C2其实差不多。

兼容多个厂家的FPGA的话,都可以用Slave Serial(Altera叫Passive Serial)的配置方法
(似乎给Xilinx器件的CCLK需要用个门控一下,因为Altera器件有片选,但是它没有)。
但是,Altera器件的配置管脚的电平是参考所在bank的Vccio的…… 所以,要真是混用还
是有点问题的。

minux 发表于 2009-12-30 22:54:25

恩,我赞同各种方案都考虑下,但是真正做的时候还是需要权衡下利弊。

qiujianben 发表于 2009-12-30 23:12:42

各位看样子都有一些进展了,感觉这个堆叠的方案设计的很巧妙啊.ATMEL STK600也采用了这种方式来适应各种不同的pin封装,建议参考一下.越来越感兴趣了.关注中.
此外,帖子有点长,问问armok能不能单独开个区?

dr2001 发表于 2009-12-30 23:16:52

板卡不支持反向插,也就是说有定位销的情况。

可以考虑这样的引脚分配,这个图只Show了一边的插座,只是用来评估这么连接好不好。

http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_520859.png
Pins (原文件名:2009-12-30_230303.png)

FreePAD就是焊接插座用的,不和任何人连接。
板卡下半部是MCU向FPGA的通用信号部分,MCU的信号进线在顶部。
FPGA上半部分正反面信号不同,是FPGA板卡间连接的;以及连接IO。
IO上半部分进信号,下边出信号到目标。可以有两种IO板,充分利用FPGA引脚而已。

全局的各种信号,配置用的信号忽略。MCU板卡级联信号忽略。

先看看这样的方法是不是合理,灵活,可扩展。
供讨论,权衡。

minux 发表于 2009-12-30 23:24:17

【272楼】 qiujianben

讨论的人数还是不够多吧,单独开版面可能就太分散了…… 原来我也建议单独出来,但是后来想了想觉得可能现在还不合适……


另外,诸位,我得到消息,我前面提过的SAM3U的申请终于通过了,Atmel的人说2周后估计送到。
但是没所通过了几片…… 反正申请的是SAM3U4E,我觉得Atmel不至于连3片都不舍得给吧……

h2feo4 发表于 2009-12-30 23:26:45

回复【274楼】minux 啊啊?
-----------------------------------------------------------------------

我觉得第一块板子焊出来的时候申请开版也许比较合适

样片申请通过可喜可贺

dr2001 发表于 2009-12-30 23:29:24

恭喜啊,有Sample了。。。
-_b 希望正式的Rev A出现了。哈哈。

h2feo4 发表于 2009-12-30 23:56:36

其实我比较想做成这个样子,示意图
IO布线两边对称
IO板可以做成full-size和half-size两种,每边有16(或32)个IO
这样我们可以做多种IO板,灵活的选择安装哪种
例如我可以在一侧插super-multi IO板,另一边可以装input-only IO板

http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_520869.PNG
(原文件名:20091230E.PNG)

可能的half-size IO板有
标准IO板:8路 super-multi IO
输入IO板:16路 input-only
输出IO板:16路 output-only
差分IO板: 8对 differential pairs
还可能有隔离IO板、多路AD板、高速AD板、多路DA板、高速DA板……

dr2001 发表于 2009-12-31 08:23:20

To 277#

不考虑FPGA连FPGA这样的情况,没问题。
考虑FPGA连FPGA,引脚可能不够;由于没具体分配,不好说。

之所以考虑FPGA连FPGA,是考虑到这样的灵活性:
如逻辑分析仪,本身FPGA板卡带SDRAM,本来用户使用的是32 IO,1M深度,现在他需要更大的深度,于是拆掉一个IO,两个FPGA连在一起,通过局部总线,我们直接提供16 IO, 2M深度。

从硬件上看,双IO子板和如上功能不冲突,主要问题在引脚是否够用。
从用户感受上说,如果好多板子堆叠,肯定是倒着放;如果我用,我希望对被测设备的连线在一个方向,不要正反正反的绕。要么LED/设置等开关在前,出线全在后边;要么都在前边,后边没东西。

基于此,我希望不要分Full Size/Half Size的板卡。
如果要分,我希望是16/32/48/64 Bit总线/IO数量这样,长一块,多排针,提供更多的IO可能,使用更高级的FPGA,和MCU控制器。
板子中间是16Bit总线,16IO;两边扩展16Bit总线,16IO,这样一节一节增加出去。也可以是一圈一圈的。
应用的时候,高带宽的在中间,窄带向一个方向扩展。另外一边是MCU。
这样的。

在考虑FPGA连FPGA的情况下,支持两边连全尺寸IO板,比支持对称的两个Half Size IO具有更大的好处。
所有TOP Side朝一个方向,上下颠倒的兼容不如考虑兼容Top vs Bottom + Top vs Top。这样的互联结构,在高低端子数的时候方便堆叠。

h2feo4 发表于 2009-12-31 09:47:32

回复【278楼】dr2001
-----------------------------------------------------------------------

让IO端都朝向同一方向我支持,肯定操作方便

至于FPGA直联,我是担心这样还不如用一块更大规模的FPGA划算(初期当然只能使用QFP封装,但以后并不一定要局限于此)
多FPGA配合工作也不是很容易

如果要支持FPGA两面都插IO板,怎么隔离各个控制区域呢
例如以作为一个单元
如果堆叠成OFOOFO,中间那两个岂不是功能完全相同,如何区分呢
IO板总不能做成两面网络不同的吧

dr2001 发表于 2009-12-31 10:15:39

回复【279楼】h2feo4无机酸
-----------------------------------------------------------------------

FPGA直连(FFO这样),前边说了,主要是考虑Pipeline。
当然,使用更大规模,更多引脚的FPGA板显然能直接/方便的解决问题。但在不增加新板卡种类的前提下,支持这个能够通过软件提供一定的扩展能力,而且对于硬件我们要做的修改有限。

这里设想的,是Pipeline这样的逐级处理。比如逻辑分析仪,增加深度的时候,如果有下级FPGA,按照标准FIFO接口往下写,满了就往本地存,这样的意思。

这里,我们保留这样的可能性,愿意写复杂软件的,可以充分利用手头的硬件。当然可以直接使用高级货解决问题。
如果我们不预留这样的可能性,那就别想实现类似的功能。
优缺点前边说了,费FPGA的IO。


FPGA板,部分网络两面相同,部分网络两面不同,这个是为了实现FPGA直连,并和MCU总线连接必要的东西。没太多疑问。
IO板,只要求一些网络两面必须相同,这些是为了传输MCU控制若干FPGA的总线;剩下的,两面网络是否相同我们不严格要求。相同了,靠FPGA板卡去隔离;不同了更好。

即我们默认,只考虑MFOFFO这样的情况。如果有特殊用途和特殊爱好,可以做复杂的IO板子,完成MOFOOFFO这样的结构。我们不Care。
前边我也说了,如果TOP/BOT翻转对称,一块IO,部分信号只用一面,也能支持这些功能。此后话。

h2feo4 发表于 2009-12-31 10:29:52

回复【280楼】dr2001
-----------------------------------------------------------------------

没有意见

在思考,如果FPGA板只考虑带一块IO板
不如把IO部分做到FPGA板上
插针都空出来放总线、级联
当不需要FPGA_级联的时候,把级联线给额外的IO板

dr2001 发表于 2009-12-31 10:35:35

其实就是选择题:

板卡类型:
M,小堆叠数据总线的 主机。典型为处理器,MCU,M取MCU。
F,小堆叠数据总线的 从机。另外具有点对点互联线。典型为FPGA。
O,点对点互联线的负载。DI/DO/IO/AD/DA等。

假设有一摞堆叠好的板子,是否考虑支持以下情形:

@ 是否支持其中有多块MCU板卡?
如MFOMFFO,M只负责自己右边,到下一个M之间的所有板卡。最左边的M是Host的Host。
一个整堆叠,内有全局信号。依靠M分割成小堆叠,小堆叠内有M为主机的数据总线。
就是M两面隔离否的问题。两面隔离,只透传全局信号,就能支持。

@ 是否支持一个MCU卡能带多个FPGA?
即能否出现MF*F*F*这样的情形。*表示一个或多个板卡,板卡只能是F/O。
F和O对小堆叠内数据总线透传。局部点对点总线,要么F是两面不同的,要么O是两面不同的。

@ 是否支持多块FPGA直连?
FF/FFF这样的情形是否出现。
继承于上条,F两面不同,直接支持;F两面相同,则受O的设计影响,F的直连数量受影响。

@ 是否能出现FOOF的情况?
取决于上边的选择,意图是充分利用FPGA引脚。

h2feo4 发表于 2009-12-31 10:43:29

回复【282楼】dr2001
-----------------------------------------------------------------------

总结得很清晰,思考一下

dr2001 发表于 2009-12-31 10:46:57

稍后我提一个堆叠的总线设计概要,供大家讨论。

选择题大家先斟酌一下。

h2feo4 发表于 2009-12-31 10:56:27

能不能搞成这样
因为IO板总是不接入总线/全局信号的,干脆分出来,用90度排针从侧面伸出
需要FPGA_级联时,用排线/转接板连接FPGA板,这样既不浪费FPGA的IO,还能保证灵活性
M
F-O

M
F-O
F-O

M
F┐
F┘
F-0

M
F-O
F┐
F┤
F┘

M
F┬O
F┘

dr2001 发表于 2009-12-31 11:35:18

善。

假设我们堆叠后,板卡是这么放在桌面上的。
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521005.jpg
(原文件名:PlaceMethod.jpg)


板卡的IO端子可以设计成这样:
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521006.jpg
(原文件名:BoardStruct.jpg)

P2P是对外的IO端子,其中可以包含:Input Only,IO,IIC等等。两个是一模一辆的。
当连接外部IO的时候,要么使用一个全高的IO卡;要么使用两个半高的IO卡,实现各种IO功能。
FPGA_级联的时候,用跳线,上联上,下联下,这样,只能使用一个半高IO卡。

采用类似PCIE那样的结构,我们给定参考板卡高度,长度不限。
CFG是FPGA配置用的信号线群,就是一个MCU控制下的那些个FPGA配置用的;
Global是整个堆叠里,包含所有的MCU,内部通用的,同步信号群。
BUS就是MCU发出来的总线信号之类的。BUS1/2/3内部的信号分配是一样的。比如多少个Input Only,多少个IO,单端怎么排列的,如果差分怎么排列。
支持的Bus多,板子自己加长即可。

如何?应该是比较方便,也不浪费什么管脚。就是放桌子上,不是整齐的一打,不够好看。

dr2001 发表于 2009-12-31 11:43:57

这个的问题就是,如果要单独用IO+MCU,会麻烦。需要MCU的板卡复杂一些。不过也还好。

h2feo4 发表于 2009-12-31 12:03:41

回复【286楼】dr2001
-----------------------------------------------------------------------

方案不错
但是有几个问题
1、IO板难以固定,只有一边插在排针上,其实相当不结实,容易脱落
2、留给IO板的面积比较小,应用受限制
3、高度受限,如果主堆叠采用1.27mm排针,其高度较低,而IO板考虑兼容性,很可能会使用全尺寸的双排2.54mm插座。按目前的堆叠结构来看,是很容易发生两块IO板上下相邻这种情况的,高度上将非常拥挤甚至打架

dr2001 发表于 2009-12-31 13:57:50

回复【288楼】h2feo4无机酸
-----------------------------------------------------------------------

主要是机械和外观不是太好。
但是你提出来的那种方案,FPGA数量略大,做Pipeline引脚还是紧张的。

我还是倾向于都堆叠在一起的结构,这样机械上比较稳定;板卡厚度通过选择插针实现。这样的就是限制了总线的速度。呵呵,相对还好吧。

【全堆叠,放案1】
FPGA的点对点的级联引线,不如考虑增加非对称的端子连接到正面。
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521053.jpg
(原文件名:01.jpg)

【方案2】
或者,对称的端子,反面的在正面也有一份,TOP和BOT对称;TOP面在TOP的旁边,有一组Dump。
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521055.jpg
(原文件名:02.jpg)
P2P Signal TOP/BOT,就是PCB正面是TOP,反面是BOT,位置相同
P2P Signal BOT是板卡正面,是BOT的信号;反面只是焊盘或者什么都没有。反面没有东西的话,正好可以拿来当定位销。


所有板卡,P2P那个位置的,所有都是正反不通。

其实和IO子卡出来的方案类似的,都是怎么处理点对点总线的问题。
好处:
- 如果反面不焊接增加的那个端子,等于是增加了定位销,插反概率下降,引脚分配工作量减少。
- 如果开始我们就定义足够充分的引脚,那么板卡大小是固定的。堆叠起来很好看。即便长度可扩展,也是从长到短一个宝塔。
- 堆叠的机械强度有较有保障。

坏处:
- FPGA板卡布线难度上升。双面板布线时,不容易保证信号完整性。
- 增大了板卡面积。

chx0920 发表于 2009-12-31 14:33:07

回复【266楼】h2feo4 无机酸
-----------------------------------------------------------------------

http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/liste.htm.en
这个是我在国外网站上看到的,是否能有帮助,里面有xilinx的相关内容

h2feo4 发表于 2009-12-31 16:16:41

回复【290楼】chx0920
-----------------------------------------------------------------------

稍稍看了一下,貌似他做的是一个USB转并口,并用它测试了下载各种芯片,例如AVR/MSP430以及Xilinx CPLD等
还没看到与本项目直接相关的内容

zzemu 发表于 2009-12-31 16:34:57

回复【290楼】chx0920
那是一个全功能的并口仿真设计,相当于使用并口。jtag 如果通过并口,速度难以忍受。

minux 发表于 2009-12-31 17:12:11

【292楼】 zzemu
这个项目就是要通过USB口啊,而且是高速USB口,我们说的并口指的是MCU和FPGA之间的接口,不是电脑的并口。

话说建立了项目的讨论区之后,我觉得应该先整理一个项目FAQ……

h2feo4 发表于 2010-1-1 00:41:51

如果堆叠层数很多的话,估计又该考虑加总线驱动器了
限制总堆叠层数不大于8层如何?

dr2001 发表于 2010-1-1 08:51:26

可以定义为每个MCU板带最多7个总线负载,这样定义比较好。
因为IO如果没用到总线的话,总线是直通的,只是增加了总线长度。

在7个的前提下,堆叠就是1MCU+7FPGA,至于用几个IO板卡,随便了。可以是7IO,共15个一叠,也可以是1IO,共9个一叠,如何?

对于全局的Reset,CLK,Trig这样的信号来说,只需要在MCU板卡上考虑单向的接力Buffer,这样就可以多个MCU板卡完成更大的范围的同步了。本来这个就是某个MCU主控到FPGA的信号,应该还好了。

liurangzhou 发表于 2010-1-1 10:16:12

回复【291楼】h2feo4 无机酸

稍稍看了一下,貌似他做的是一个USB转并口,并用它测试了下载各种芯片,例如AVR/MSP430以及Xilinx CPLD等
还没看到与本项目直接相关的内容

这个并口我试过了,可以枚举,发现并口,但是至少试过不能做XILINX 下载

minux 发表于 2010-1-1 17:16:08

【296楼】 liurangzhou
因为从理论上就不可能实现真正的USB->LPT。
最简单的例子,无论如何也不可能在USB->LPT上面接任意的并口加密狗(任意是说不需要修改加密狗的驱动)。

liurangzhou 发表于 2010-1-1 19:09:20

从理论上模拟应该是可以的,只是速度或其它性能达不到那么高,因为WIN是通过硬件抽象来管理硬件的,它根本就不会知道它操作的端口是个什么样的

minux 发表于 2010-1-1 19:17:48

【298楼】 liurangzhou
不是性能的问题。如果都通过HAL来访问硬件就好了…… 事实是,很多软件都直接操作io port。
想兼容这类软件,必须截获in/out指令,用户态的程序好办,但是如果in/out指令是在内核态进行的,
那除了直接patch代码没别的办法。

imwinter 发表于 2010-1-1 21:45:34

关注

happyasr 发表于 2010-1-3 09:39:33

回复【299楼】minux啊啊?
【298楼】 liurangzhou
不是性能的问题。如果都通过HAL来访问硬件就好了…… 事实是,很多软件都直接操作io port。
想兼容这类软件,必须截获in/out指令,用户态的程序好办,但是如果in/out指令是在内核态进行的,
那除了直接patch代码没别的办法。
-----------------------------------------------------------------------

用户态下in/out就会引发异常吧……
页: 1 2 [3] 4 5 6 7 8 9 10 11 12
查看完整版本: multijtager(基于FPGA的多功能JTAG调试/下载接口)开源项目倡议与讨论