搜索
bottom↓
楼主: multijtager

multijtager(基于FPGA的多功能JTAG调试/下载接口)开源项目倡议与讨论

[复制链接]

出0入0汤圆

发表于 2010-1-3 13:36:15 | 显示全部楼层
【301楼】 happyasr 星星
请google I/O permission bitmap(Windows管这个叫IO Access Map)。
一部分用并口的程序就是通过这个来在用户态(ring 3)访问并口IO的,这样可以用一个通用的驱动。

出0入0汤圆

发表于 2010-1-4 20:27:39 | 显示全部楼层
回复【299楼】 minux 啊啊?
不是性能的问题。如果都通过HAL来访问硬件就好了…… 事实是,很多软件都直接操作io port。
想兼容这类软件,必须截获in/out指令,用户态的程序好办,但是如果in/out指令是在内核态进行的,
那除了直接patch代码没别的办法。
--------------------------------------------------------------------------------------
对于WIN不是太了解,我估计它的所以IN/OUT都会经过操作系统的,这个开源的并口据说是可以捕获IN/OUT指令,
但我没有一个地方试成功了

出0入0汤圆

发表于 2010-1-5 14:10:34 | 显示全部楼层
顶一下
这几天忙别的事,过几天回来继续

出0入0汤圆

发表于 2010-1-11 19:02:53 | 显示全部楼层
顶一下。做这样的下载器很好。大家一起来做吧!我可以画电路板

出0入0汤圆

发表于 2010-1-12 10:00:36 | 显示全部楼层
最近怎么没人动了?

出0入0汤圆

发表于 2010-1-12 19:48:37 | 显示全部楼层
呃,到了考试阶段了,我经常不能上线……
至少还得等一周吧。

出0入0汤圆

发表于 2010-1-24 16:45:33 | 显示全部楼层
网站刚恢复,先来顶下。
SAM3U样片竟然还没有到……

前段时间再次调研了高速USB外设的可用器件,没啥新的选择。
不过今天偶然看到google给了我了一个广告,
http://www.cec-otg.com/p4-download-2.asp
似乎都是HS OTG,不过封装都是QFP还行,不过功能还是过于全面了,比如MP3 Decoding....

出0入0汤圆

发表于 2010-1-25 12:08:46 | 显示全部楼层
我也回来
minux这几天有空见面聊么

出0入0汤圆

发表于 2010-1-28 21:07:52 | 显示全部楼层
顶下~~ 等着h2feo4的讨论总结帖~

出0入0汤圆

发表于 2010-1-28 23:10:08 | 显示全部楼层
今天约了minux和dr2001出来,聊了近3个小时,简单总结一下

关于MCU板:
板载一块16-bit宽度的异步SRAM,容量不小于16K*16
(后记:经查询ISSI网站,容量最小的也有32K*16,同封装下容量最大的有512K*16)
板载5V-3.3V电源,并向其所属FPGA板、IO板供电。

关于FPGA板:
板载一块16-bit宽度的RAM(保留SRAM封装和SDRAM封装,焊接时二选其一)

关于IO板:
使用比较器/模拟开关采集VREF信息,进行主动跟随
使用NMOS管切换GND引脚
使用1T45切换数据方向
板载一块单片机处理IO事物

关于板间连接:
确定连接件布局为类似PCI-E结构
确定总线宽度为:
数据线16位、地址线16位(另加用于DMA控制的2-4根)、控制线8位
全局信号:
全局时钟2-3对差分线,同步信号2-4根,RST信号1-2根
配置信号:
IIC、SPI*2、SSC、OC*8
其它:
电源、地等

关于其它:
确定板尺寸约为100mm*70mm
增加调试用接口板

出0入0汤圆

发表于 2010-2-9 12:04:51 | 显示全部楼层
我回来了。现在进展如何了?
接口pinout定好了么?
SAM3U样片还没有消息,估计得节后才能到了…… 想办法去问问到底怎么回事儿。

出0入0汤圆

发表于 2010-2-9 21:03:37 | 显示全部楼层
回复【312楼】minux 啊啊?
-----------------------------------------------------------------------

我这两天没考虑
接口定义,思路按照【311楼】会议纪要安排,略留出余量
每人先构思一个版本,然后再讨论决定如何?

出0入0汤圆

发表于 2010-2-12 17:44:31 | 显示全部楼层
建議USB的總電流要考慮清楚
Bus Power 的話不建議大於200mA

另外要不要參考下多年前的拙作:
http://www.samedisk.com/cht/productinfo25128.php

FPGA作的USB2.0HS(100Mb/sec)
SRAM有128Mb
目前為各BIOS,主板/筆記本,DTV的FW主流開發工具

出0入0汤圆

发表于 2010-2-23 12:30:43 | 显示全部楼层
顶,支持这个项目的开源。

出0入0汤圆

发表于 2010-2-23 12:40:20 | 显示全部楼层
建议阿莫应该弄这个开源项目了。要不然FPGA就真成花瓶了。。

出0入0汤圆

发表于 2010-2-24 14:33:51 | 显示全部楼层
【313楼】 h2feo4 无机酸,dr2001

抱歉,最近没上网一直在家研究某ARM调试器……

我觉得我们的项目还需要调研下上次提到的跟踪Vref的可行性(最好是出个板子,然后可以和别的现成的调试器配合,试试效果)。

另外,该规划一下软件了。
我最近就在想这个问题~ 接口问题麻烦你们先讨论吧。

出0入0汤圆

发表于 2010-2-25 09:46:10 | 显示全部楼层
回复【317楼】minux 啊啊?
-----------------------------------------------------------------------

我也刚外出回来
跟踪Vref应该问题不大,倒确实可以先搭个试试
IO下拉用的NMOS管选定了么?
选定了就可以布板试试,做一个8通?16通?的测试板

出0入0汤圆

发表于 2010-2-25 10:00:25 | 显示全部楼层
主要看是用对管还是单个的。单个的NMOS封装SOT-23的就行了,型号不用太折腾吧?到时候买到谁算谁,测试的话。

出0入0汤圆

发表于 2010-2-25 10:02:39 | 显示全部楼层
回复【319楼】dr2001
-----------------------------------------------------------------------

如果不需要向外输出电源的话,单管就可以了

出0入0汤圆

发表于 2010-2-25 11:06:54 | 显示全部楼层
回复【320楼】h2feo4 无机酸
回复【319楼】dr2001  
-----------------------------------------------------------------------
如果不需要向外输出电源的话,单管就可以了
-----------------------------------------------------------------------

回学校了吧

出0入0汤圆

发表于 2010-2-25 22:58:50 | 显示全部楼层
关注中……

出0入0汤圆

发表于 2010-2-25 23:15:28 | 显示全部楼层
另外一个问题,开漏输出的某些管教咋办?比如JLink的RST那样的管脚(这个管脚没有协议,你不可预知什么时候Target可能会拉低
;如果已知协议的话双向通讯线都好说)?

我回想我们的IO架构,就是这种输出类型不好处理……

我假期仔细看了JLink的固件,现在觉得它最大的败笔就是SWD的输出驱动…… 其实他随意上个小CPLD就能把SWD驱动速度从4MHz提高到
12MHz,但是现在他用的是软件驱动的方式;不过话说回来,他的JTAG驱动方式非常优秀~

出0入0汤圆

发表于 2010-2-26 08:57:26 | 显示全部楼层
回复【323楼】minux 啊啊?
-----------------------------------------------------------------------

驱动1T45的方向端即可
在输出0,与输入(即对外高阻)这两个状态间切换即可

出0入0汤圆

发表于 2010-2-26 10:20:15 | 显示全部楼层
【324楼】 h2feo4 无机酸

比如我要让RST输出1,于是1T45选择输出1,但是突然target板上有人按reset把RST接地了…… 怎么办?

出0入0汤圆

发表于 2010-2-26 10:29:30 | 显示全部楼层
回复【325楼】minux 啊啊?
-----------------------------------------------------------------------

既然是开漏输出,怎么会有输出1的时候?
如果你想输出“1”,应将1T45设为输入(即输出高阻状态),靠上拉电阻拉到1
如果你想输出“0”,可以让1T45输出0

出0入0汤圆

发表于 2010-2-26 16:09:31 | 显示全部楼层
【326楼】 h2feo4 无机酸

不是啊,如果上拉电阻在Target板上,那么没任何问题,可是如果像JLink那样呢(它的开漏输出做在仿真器里,也就是说上拉电阻在
IO端而不是Target端,因为不能假设Target上有正确的上拉?)?
如果要这样的话,我们还得给几个管脚加上能可控制的上拉电阻了……

出0入0汤圆

发表于 2010-2-26 16:33:25 | 显示全部楼层
回复【327楼】minux 啊啊?
-----------------------------------------------------------------------

可控内部上下拉?我觉得现在搞这个代价过高了
还是先做出基本的再说吧,以后有必要的时候再加上很容易
没有上拉电阻的,就暂时手工搭一只上去好了

出0入0汤圆

发表于 2010-2-26 16:37:10 | 显示全部楼层
楼主这个调试器的固件怎么做?自己开发?还是用网上有的原版固件,个人觉得固件才是最主要的。

mark

出0入0汤圆

发表于 2010-2-26 17:30:59 | 显示全部楼层
【328楼】 h2feo4 无机酸

恩 我同意放弃这个功能,以后做转接板解决吧,我就是提下这个可能的问题。
其实,我觉得Target板上应该肯定也有上拉吧……


软件的问题,似乎问题很大……
如果想支持多核JTAG调试,那么软件需要支持动态scan chain管理(参考TI的ICEPick机制)。
现有的开源项目的软件架构似乎都不支持这个…… 而这个肯定是未来的趋势。

出0入0汤圆

发表于 2010-2-27 10:03:59 | 显示全部楼层
我现在在研究一款硬件架构类似的系统,先看看别人是怎么做的~

出0入0汤圆

发表于 2010-3-1 10:22:07 | 显示全部楼层
最近和taoist大侠请教了一下,他给了我们几个建议,总结转述如下:

1,USB/网口哪个都不能少(理由在于USB需要驱动,我的考虑是我们可以用大多数系统都支持的比如Mass Storage Class的驱动?)
2,SAM3U4E是不错的一个CPU,但受限于主频和缺少MAC接口
3,其实软件非常重要,硬件可以慢慢进化,没必要一步到位;接口不是越全越好,开始不用考虑太多;
4,TCK速度不是最重要的
5,JLink最大的优点是用最小/最便宜的硬件实现了别人用FPGA可能还没有实现的功能

说得非常好~ 大家怎么看?
我回头去找人问问Atmel样片的事情,期间我们做些啥?应该赶紧出一个版本的硬件为好。
Vref跟踪的问题,我们怎么弄?要不一口气先出个IO板做实验?

出0入0汤圆

发表于 2010-3-1 13:15:31 | 显示全部楼层
回复【332楼】minux 啊啊?
-----------------------------------------------------------------------

个人认为
IO板虽然重要,但没有JTAG功能重要,故实现JTAG应先于IO板
同理,MCU上的工作也应该先于FPGA(除非打算把主要工作放在软核中),即使只用IO模拟来实现JTAG也好,如果能实现,提高速度只是举手之劳

现在不妨试试用一块现成的开发板来构建,肯定比自己设计要快得多
能实现基本功能后再自己设计硬件,移植过来很容易

是否考虑分工?例如(随便一说,仅供参考):
minux先在一块现成的开发板上尝试软件实现,dr2001设计MCU板硬件,我设计和验证IO板??
目标单一一点也许实现得更快

有需要的话我可以贡献一块 Spartan-3E Starter Kit

出0入0汤圆

发表于 2010-3-1 22:19:42 | 显示全部楼层
【333楼】 h2feo4 无机酸 & dr2001

恩,我也有个S3E Starter Kit,不过那个侧面的IO插接件没有买到…… ft...

这个先不急,我先弄软件吧。我先用STM32开发板+FPGA板弄软件吧(抑或是我们问问能不能借个SAM3U的板子?)。

那硬件就先拜托你们了。确实等得手痒痒了,软件这东西得多写多测多改。

我们先定一个软件的一期目标吧。如果不用SAM3U开发板,那最好还先不跟硬件上下太多功夫,比如我先用GPIO模拟
时序看下,软件主要是先搭框架吧。先弄FPGA下载还是ARM之类的?抑或是先搞个jam/svfplayer?

出0入0汤圆

发表于 2010-3-2 09:02:16 | 显示全部楼层
STM32和SAM3U的底层差很远。。。换平台测试很麻烦。

问题在于实现什么功能?

软件USB侧,初步倒是可以考虑分析Mass Storage协议,看如何实现高速的IO操作。或者,看看Win下还有什么免驱的标准类能达到高速操作的。
另外一个就是分析各种协议,积累资源。一方面是Core的协议,一方面是调试环境的。。。

标准上,我觉得可以参考以下:
1.IEEE STD. 1149.1, JTAG
2.IEEE STD. 1500 Core Test
3.IEEE STD. 1450, 1450.1, 1450.2, 1450.6
后两个未来可能会有用。值得提前考虑。

硬件上在于没有SAM3U,有芯片先做板子都好说。。。

出0入0汤圆

发表于 2010-3-2 13:51:19 | 显示全部楼层
恩,补充下这个标准,已经有产品在用了(AVR32比如):Nexus(IEEE-ISTO 5001-2003)

对,MCU确实还是得赶紧搞定。

Mass Storage协议倒还好,这个可以先看看我们如何可移植地封装我们的通讯到这个协议中去。
如果有SAM3U就可以先搞这个,达到尽可能快的速度……

但是这样的话,不仅仅要MCU芯片,我们还是得先做好板子啊……
这就又归结到板间接口这个老问题上了……

出0入0汤圆

发表于 2010-3-2 18:55:17 | 显示全部楼层
搞了个框架:

(原文件名:20100302.PNG)

除了GND、VCC5和VCC33,剩下的分为PA-PN共14组8位线
PA和PB走全局信号,例如时钟、复位、IIC之类的
其余分配给各种功能
例如:
PC-PE分配给地址总线,PF和PG分配给数据总线,PH分配给控制总线,依此类推……

看看行不行

出0入0汤圆

发表于 2010-3-2 22:17:04 | 显示全部楼层
回复【334楼】minux 啊啊?
【333楼】 h2feo4 无机酸 & dr2001
恩,我也有个S3E Starter Kit,不过那个侧面的IO插接件没有买到…… ft...
这个先不急,我先弄软件吧。我先用STM32开发板+FPGA板弄软件吧(抑或是我们问问能不能借个SAM3U的板子?)。
那硬件就先拜托你们了。确实等得手痒痒了,软件这东西得多写多测多改。
我们先定一个软件的一期目标吧。如果不用SAM3U开发板,那最好还先不跟硬件上下太多功夫,比如我先用GPIO模拟
时序看下,软件主要是先搭框架吧。先弄FPGA下载还是ARM之类的?抑或是先搞个jam/svfplayer?
-----------------------------------------------------------------------

那个插件叫FX2,我在上海赛格这边找到有卖的,价格也不算贵,需要的话买一批备着,或是做个转2.54的转接板……


回复【335楼】dr2001
STM32和SAM3U的底层差很远。。。换平台测试很麻烦。
问题在于实现什么功能?
软件USB侧,初步倒是可以考虑分析Mass Storage协议,看如何实现高速的IO操作。或者,看看Win下还有什么免驱的标准类能达到高速操作的。
另外一个就是分析各种协议,积累资源。一方面是Core的协议,一方面是调试环境的。。。
标准上,我觉得可以参考以下:
1.IEEE STD. 1149.1, JTAG
2.IEEE STD. 1500 Core Test
3.IEEE STD. 1450, 1450.1, 1450.2, 1450.6
后两个未来可能会有用。值得提前考虑。
硬件上在于没有SAM3U,有芯片先做板子都好说。。。
-----------------------------------------------------------------------

使用Mass Storage协议,可以免驱,然后使用BULK only方式,上位机将数据打包,firmware解析,然后CPLD shift数据出去,就很快了!
不过我的EJTAG使用的是开源的libusb驱动,linux和windows下都有,避开了开发驱动的问题……

出0入0汤圆

发表于 2010-3-3 11:06:59 | 显示全部楼层
【337楼】 h2feo4 无机酸

需要考虑防止反插么?另外,为何设置这么多VCC33啊?我是怕VCC33上的噪声比较大……


【338楼】 bone

谢谢提醒,我找时间赶紧去问问FX2……

我最近在考虑的是,如何不涉及操作系统中非可移植的接口,将数据通过Mass Storage方式送下去,
也就是尽可能只用open/close/read/write这类的调用。

libusb我以前用过,至少在Linux下面性能是不够的…… 我后来自己写了个直接向内核队列提交URB的,
结果速度才让人满意(41MB/s vs. 28MB/s)……
当然这个项目28MB/s是绰绰有余了…… 不过即使使用libusb,还是得有驱动…… 所以选择设备类的问题
逃不了的…… 不过用这个的话,似乎倒是一种可选的可移植的USB编程接口方案。

大体似乎与你说的类似,但是有一点非常不同…… 我们的下位机是有处理能力的,一部分JTAG操作要
完全由它完成(以避免USB协议延时造成的瓶颈)。

出0入0汤圆

发表于 2010-3-5 12:15:36 | 显示全部楼层
顶高手们

出0入0汤圆

发表于 2010-3-5 14:38:37 | 显示全部楼层
最近看了USB Mass Storage Class Bulk Only Transfer的相关文档以及SCSI和FAT文件系统的文档,
我原来考虑的只用open/close/read/write来接口的方案似乎有点得不偿失,还是用libusb或者其他
跨平台的USB库吧(Windows底下如果有管理员权限倒是可以直接往MSD设备送SCSI命令,不过这个超级
不可移植啊)。
下一步是实验下如果已经被系统加载了usbstor.sys的驱动,那么还能不能用libusb直接操作(Linux下
面问题不大)。

出0入0汤圆

发表于 2010-3-5 16:57:41 | 显示全部楼层
回复【341楼】minux  啊啊?
-----------------------------------------------------------------------

参考一下STLink是怎么实现的,好像这个用的就是Mass Sto的协议。
不知道有多少借鉴价值。

出0入0汤圆

发表于 2010-3-6 15:32:36 | 显示全部楼层
【342楼】 dr2001

3ks 马上去看看。

原来使用自定义SCSI指令,估计就是我说的直接跳过SCSI层向设备发指令……这东西超级不可移植…… 而且Windows底下应该也是只有管理员才能用……
参考:http://www.stmsky.com/bbs/viewthread.php?tid=1631&extra

出0入0汤圆

发表于 2010-3-6 16:08:06 | 显示全部楼层
另外,最近研究了某产品,我发现是这样的,按下某键插入电脑,就变成一个U盘,然后你可以直接更新固件
firmware.bin,然后它会在下次重启时候自己把文件写入单片机Flash里面。这个方式挺理想,我觉得我们更新固件之类就是这么做吧。

至于调试通讯协议,还是得继续考虑~

至于那个架构类似的产品,我初步结论是,由于他使用的是不带外部总线的MCU,但是他还是用GPIO模拟了一个总线接FPGA,
具体连接方式如下:4-bit cmd: MCU->FPGA;nRD, nWR: MCU->FPGA;16-bit bidir data: MCU<->FPGA。(其实cmd可以看成是4-bit addr)
MCU负责AD和一部分LED等人机界面控制。JTAG驱动部分我还得再看看,主要是MCU和FPGA的分工问题需要搞明白。
和我们的设想几乎一致,继续吧,我们的大架构没问题。

出0入0汤圆

发表于 2010-3-8 14:56:13 | 显示全部楼层
麻烦大家看下这个帖子中的J*Trace的电路图片:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=954949&bbs_id=1032 [注意:7楼说了背面没有元件]

似乎直接用FPGA的一个bank驱动JTAG信号的…… 既然商业的产品敢这么用,我们是不是也可以试试?
用点好的保护措施?关键是兼容5V的FPGA可不好找了……

出0入0汤圆

发表于 2010-3-9 09:58:29 | 显示全部楼层
“阴险”的S*e*g*g*e*r当然希望你打坏I/O再买个新的,自己做东西当然不舍得FPGA的1个I/O坏掉就整片报废咯

出0入0汤圆

发表于 2010-3-9 10:55:57 | 显示全部楼层
重大利好!!!
SAM3U4E样片3片已到。

出0入0汤圆

发表于 2010-3-9 13:30:17 | 显示全部楼层
关于无驱动的问题又有了一个新的设想。
原来我的设想是每次都读写一个文件来达到发送命令和数据/接收结果和数据的目的,但是这有一个问题,
涉及到操作系统对于重写文件,可能因操作系统不同而有依赖。
我想了个新的方式: 每条命令都重新建立/读取一个新的文件,这样MCU这边也好跟踪些。

不过,设想归设想,还是得赶紧实验下,看看传输速度够不够要求;另外,还有看看fsync调用是否能在所有系统
上完成所设想的功能;而且还有操作系统的块设备cache对这个的影响(操作系统处理打开她认为不存在的文件时候
会不会再去设备上寻找?唉,还是有些操作系统相关的问题啊)。

出0入0汤圆

发表于 2010-3-9 15:20:50 | 显示全部楼层
回复【347楼】minux  啊啊?
-----------------------------------------------------------------------

终于核心芯片出现了……太痛苦咧。

我不太清楚Bulk Only的读写操作是什么样的,但是考虑读写扇区这样的底层指令是否方便?是否会过缓存。

基于文件的操作很有可能被Buffer,尤其写缓存,可能有问题。

出0入0汤圆

发表于 2010-3-9 18:04:31 | 显示全部楼层
【349楼】 dr2001

包装上说是3月2日封口的…… 这个效率不敢恭维…… 哈哈。。。不过总算到了,而且恰好够用。
现在赶紧商量MCU板的事情吧。

缓存的问题确实很复杂…… 直接读扇区可能必须要管理员权限吧…… 不过我还得调查下。
Bulk-only的时候,USB设备这边看到的只是读写扇区的操作,所以必须这边解析还原成文件系统操作,确实比较麻烦。。。。

出0入0汤圆

发表于 2010-3-9 21:05:02 | 显示全部楼层
芯片版本是ES的?

出0入0汤圆

发表于 2010-3-9 21:28:00 | 显示全部楼层
【351楼】 dr2001

恩,是ES。所以我们画图的时候还得放着点那么多bug... 非ES版不是据说Q2才能出来么…… 我很好奇这个片子的真实价格~
对了,您对h2feo4发的【337楼】发的IO分配有什么意见?

引用图片【337楼】h2feo4  无机酸
-----------------------------------------------------------------------

(原文件名:20100302.PNG)

出0入0汤圆

发表于 2010-3-10 15:32:46 | 显示全部楼层
是个好建议,很有必要 ,支持

出0入0汤圆

发表于 2010-3-10 15:59:30 | 显示全部楼层
最近规划了一下MCU的软件架构:
由于Flash比较大,256KB,所以考虑分32KB-64KB的空间给RTOS和Bootloader以及常用函数库,通过svc的程序供应用程序调用。

后面部分的Flash以页为单位,分别放所谓的应用程序,第一次启动或者是用户按着某个按钮插入USB,则Bootloader启动,
枚举成U盘,内有Readme.txt文件,说明用法,用户可以更新firmware(当然如果更新boot区的话似乎要更复杂点,以防止系统挂掉;
同时,设计成可以单独更新每个应用程序,当然这个复杂点,更新的问题我后面会说)
同时用户可以简单的创建一个文件,写入他想用的功能/模式,然后系统就会(这个方式需要商榷)重启,并启动对应的应用程序。

每个app是这样的,其实它就是传统意义下的单片机主程序,每个都完成一个完整的功能,比如App1是USB-Blaster模拟,App2是
XPCU模拟,App3是ARM调试器等等。它们的公用代码以及操作系统放在boot区,也就是可以减少每个App的代码量(通过svc来访问)。

然后每个app头部都有一个struct存放:App名称,起始地址,长度等关键信息。

至于应用更新的问题,注意到在更新之前,应用程序的具体加载地址是不知道的,所以应用程序必须以可重定位方式连接,在最后加载
前根据地址使用新的ld script重新连接,然后写入U盘。更具体的方式取决于我们如何用U盘来实现通信协议。

我以前也考虑好长时间这个软件架构,这个灵活性应该能配得上我们的硬件。而且用户有充足的DIY空间。

工具链选择的问题:
理论上,我们可以实现工具链无关的加载,但是初期可能还是面向GCC吧,不然没有IAR/Keil的用户没办法用这个了……其实我觉得
只要是生成ELF文件的工具链都可以用。

RTOS选择的问题:
这个大家有什么推荐?肯定得用开源的,而且鉴于我上述的架构,应该是特别适合Cortex-M3的才好,比如CooCox CoOS ?

没什么问题,我就准备在Google Code上建立一个项目,使用subversion管理项目的所有代码。

出0入0汤圆

发表于 2010-3-10 19:42:39 | 显示全部楼层
刚外出4天回来,关注一下进展
貌似样片到了,硬件要抓紧了
最关键的还是要赶紧解决板间连接件的电气定义

出0入0汤圆

发表于 2010-3-11 22:50:10 | 显示全部楼层
连接定义根据以前讨论的,需要确认一下都输出什么,输入什么怎么连接。

SAM3U,引出的总线资源做如下分配:
数据总线:D0-D15 [16]
地址总线:A0-A13; A20-A23 [14+4]
控制总线:nRD, nWE, nWR1/nBS1, nCSx2, nWait [6]
总计16+16+2+6个,8的倍数。

用245等缓冲器处理,增强驱动能力,但是延迟++。

其余信号根据配置需求考虑。
至少可以提供:
1 IIC;1 SSC 【8P】
2 SPI        【12P】 标准SPI,6P,带3 CS;USART1/2/TWI1,凑一个SPI,或者拆开用。
2 USART      【4P】
3组8P完成。

GPIO可额外提供8P,但此时引脚会紧张。

出0入0汤圆

发表于 2010-3-11 23:16:42 | 显示全部楼层
通用化考虑,MCU板卡提供:

[1] 1xGPIO:位置识别;正面接地,不连接MCU;反面连接MCU,上拉。其余板卡正反联通,全局信号。
[2] 1xIIC:用途待定;正反联通,全局信号。
[4] 2xUART:MCU间双向通信;正面 US1-TxRx;反面 US2-TxRx,占用全局信号。
[1] 1xGPIO:全局复位,正反联通。直接连接到MCU复位引脚??【待定】。
全局信号,记8P。

预留FPGA用全局信号,CLK,Reset,Sync等,至少8P。

局部信号,FPGA配置用途
[6] SSC:FPGA串行配置数据。
[6] 6xGPIO(US1/US2/TWI1):FPGA配置信令:Reset, Program, Done, Reserv。反面悬空,正面连接至MCU。
[4] SPI:保留用途。
记16P。

看看是否满足扩展等等的需求。

出0入0汤圆

发表于 2010-3-14 16:51:30 | 显示全部楼层
dr2001 是不是还需要留AD信号?还是说测量Vref在IO板上用atmega169来做?

你说的其他部分,我觉得没问题。

出0入0汤圆

发表于 2010-3-14 20:48:11 | 显示全部楼层
改进了一个版本
2*18 + 2*40
【357楼】 dr2001 所提到的信号放在上半区
数据总线、地址总线、控制总线依次放在下半区
不过貌似空间太多,装下32A+32D+16C总线也不成问题,可以考虑适当剪裁


(原文件名:20100314.PNG)

出0入0汤圆

发表于 2010-3-15 09:36:47 | 显示全部楼层
考虑FPGA互联线以及反射线,空间不一定很富裕。

出0入0汤圆

发表于 2010-3-15 13:48:07 | 显示全部楼层
诸位,是否要考虑这种应用情况:
FPGA板向MCU板申请总线权,然后直接读取MCU板上RAM里的数据?类似于把DMA放到MCU外部去的想法。
这样的好处是,比如将来我们可以做到完全把JTAG算法跑在FPGA里,那么MCU就管把数据放到SRAM里,
然后交出总线,FPGA读取SRAM中的数据直接操作。

如果这样,低位地址线最好多些,同时,至少要两根GPIO做DMA_REQ和DMA_ACK,放在控制线那类里。

初期不一定要这么做,后期可以试试,毕竟就算用DMA往FPGA里打数据,也还是要用外部总线的和占用
内部的总线带宽的。

同时,如果面积够大,数据总线留32根是不错的。便于FPGA之间通信,当然,FPGA之间通信,也可以
不走这个有MCU在的总线。


h2feo4,你这个如果按照1.27mm排针来弄的话,似乎超过8cm了,不用太大吧?


不过既然芯片已经到了,我们似乎应该赶紧讨论一个决议开始做硬件了,而且据说SAM3U今年Q2就正式
上市了,我们似乎不用管一次性成功的问题,先有个软件的框架为好,硬件再改一版也是可以接受的吧?

出0入0汤圆

发表于 2010-3-15 13:55:58 | 显示全部楼层
回复【361楼】minux 啊啊?
-----------------------------------------------------------------------

2*2*60的话,1.27mm排针,不到8厘米长,按当初商定的7cm*10cm外形尺寸来说,没有问题
如果用2.0mm排针就要接近12厘米了

出0入0汤圆

发表于 2010-3-15 15:02:34 | 显示全部楼层
ft啊,Actel出了个SmartFusion,带有硬CM3核的FPGA……
就是外设没SAM3U多而已……

看来CM3+FPGA也开始是趋势了。。。

出0入0汤圆

发表于 2010-3-15 15:53:31 | 显示全部楼层
回复【363楼】minux  啊啊?
-----------------------------------------------------------------------

迟早的事情。嵌入硬核+常用外设+FPGA是趋势。

Xilinx已经和ARM签合作协议了,好像,但是不知道License了什么Core。

出0入0汤圆

发表于 2010-3-17 02:45:33 | 显示全部楼层
【364楼】 dr2001

hehe 不过有种声音说是未来是软件的世界,参考这个公司的产品:

http://www.xmos.com/

把除了Phy外的东西全给弄成软件做(不过别着急评论,最好是先看看人家的系统架构~)。

其实也挺好。有机会我倒是希望试试这个芯片(价格倒是不贵,不过中国估计买不到)。

出0入0汤圆

发表于 2010-3-17 09:12:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-17 11:17:08 | 显示全部楼层
硬件搞的太复杂了,成本就高了,反而不容易做成开源项目吧。
用类似于H-JTAG+WIGGER的方式做,我觉得好的多啊!

出0入0汤圆

发表于 2010-3-17 13:59:28 | 显示全部楼层
回复【365楼】minux  啊啊?
-----------------------------------------------------------------------

我没完整看他的解决方案。从介绍上,有点像创新的干细胞那种架构。好像AMD提出过类似的Stream Processing的概念。

从更宏观一些的层面看,就是芯片级的流水线,现在的普通处理器芯片可以视为没有流水的;当然,说是网格/分布计算也对。主要看实际上采用的芯片互联关系。和FPGA的芯片级互联,进行大规模ASIC测试/验证异曲同工。如果看复杂的现代处理器结构,也是有很多反馈,前馈通路的,实际上内部流水线也不是单向连接的。
如果他的编译工具能支持在给定连接关系的阵列下自动分配计算任务,那整个解决方案就很强了;否则,除了互联_总线他强以外,和普通高性能MCU级联比,没有更大优势。当然,目前FPGA的开发环境,貌似更没这个功能。

从数据处理上看,可以说类似于通信上的SDR实现,移动软硬件的处理边界;从而在灵活性,资源消耗等不同方面获得自己强调的那些。估计学界对SDR的讨论更多一些,应该有很多分析论文可以借鉴。

和MultiJTAG提出的结构类比,之所以提出FPGA板卡的级联,就是考虑单向,纯串行结构,芯片级的PipeLine。其实都是类似的想法。只不过受限于引脚数量等,互联强度很低而已了。

供参考/讨论。

出0入0汤圆

发表于 2010-3-17 15:15:06 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-3-17 21:48:27 | 显示全部楼层
【367楼】 bone

低成本的已经很多了,我们希望做*开源*的高性能仿真器/下载线。
如果没有开源的高性能作品,那么当你真正需要的时候,还是会去购买商业产品。
不然为啥现在那么多买JL*ink Clone的? 按照你的说法,大家用wiggler不就行了么?

用wigger的性能已经很难提升了,况且现在有并口的机器也越来越少了,却没有机器不支持USB,不过USB->LPT转换+wiggler
性能上根本不现实(比LPT+wiggler)。

出0入0汤圆

发表于 2010-3-18 20:49:16 | 显示全部楼层
回复【370楼】minux 啊啊?
【367楼】 bone  
低成本的已经很多了,我们希望做*开源*的高性能仿真器/下载线。
如果没有开源的高性能作品,那么当你真正需要的时候,还是会去购买商业产品。
不然为啥现在那么多买JL*ink Clone的? 按照你的说法,大家用wiggler不就行了么?
用wigger的性能已经很难提升了,况且现在有并口的机器也越来越少了,却没有机器不支持USB,不过USB-&gt;LPT转换+wiggler
性能上根本不现实(比LPT+wiggler)。
-----------------------------------------------------------------------

我说的是类似哦!
wigger的性能差,是因为它使用了bit的方式模拟的时序,如果使用cpld来shift数据出去的话,速度能至少提高8倍以上!
所以我认为上位机负责数据打包,下位机负责jtag状态机跳转的方式是比较好的一种开源方案。这样的架构,即是类似(注意:类似)HJTAG+wigger的架构!只要上位机合理的打包,就可以加快下载及调试的速度!

出0入0汤圆

发表于 2010-3-19 13:40:26 | 显示全部楼层
【371楼】 bone

你说的用PLD来shift数据的方法也早有人做过了,都有商业产品(http://www.amontec.com/jtag_accelerator.shtml)了。

但是这有两个问题:
1,现在很多机器没有并口。如果你说USB->LPT,那么又回到USB的延时上去了,这个我们解释过多次了,同时网上也有说明,
为什么简单实现的USB->LPT比LPT本身还慢。(这也是我们要用高速USB的一个原因,当然另外一个原因是带宽的需求)
2,这么做速度还是有一个很大的瓶颈,就是没有具有一定处理能力的下位机:
JTAG下载不是只要往目标机里面送数据就可以,很多时候需要不断轮询,查看目标机的状态,决定下一步的操作。
(由于JTAG协议以前没考虑到这点,没有异步通讯线,所以这就非常麻烦了)。
如果让PC来操作所有这些,会慢很多的(比如每次轮询需要移位16位,如果有下位机,不管多少次轮训,上位机都不需要占用
通讯口带宽送这些重复的数据)。所以才需要下位机来处理这个问题。
当然,如果你要用FPGA来做这个有处理能力的下位机,那跟我们的做法也没啥区别了(我最开始就曾经计划用FPGA+USB接口来做)。
我们用SAM3U也是不得已,这个讨论我们前面说过不知多少次了(核心原因:我们需要高速USB口,但cy7c68013a不合适,其他的
接口比如isp1581之类不比SAM3U更便宜)。
另外,用了目前的架构,我们可以可扩展性很强,没说这个只能做JTAG下载线,还有逻辑分析仪呢,而且估计这个应用会最早
完成。

出0入0汤圆

发表于 2010-3-19 22:23:18 | 显示全部楼层
回复【372楼】minux 啊啊?
【371楼】 bone  
你说的用PLD来shift数据的方法也早有人做过了,都有商业产品(http://www.amontec.com/jtag_accelerator.shtml)了。
但是这有两个问题:
1,现在很多机器没有并口。如果你说USB-&gt;LPT,那么又回到USB的延时上去了,这个我们解释过多次了,同时网上也有说明,
为什么简单实现的USB-&gt;LPT比LPT本身还慢。(这也是我们要用高速USB的一个原因,当然另外一个原因是带宽的需求)
2,这么做速度还是有一个很大的瓶颈,就是没有具有一定处理能力的下位机:
JTAG下载不是只要往目标机里面送数据就可以,很多时候需要不断轮询,查看目标机的状态,决定下一步的操作。
(由于JTAG协议以前没考虑到这点,没有异步通讯线,所以这就非常麻烦了)。
如果让PC来操作所有这些,会慢很多的(比如每次轮询需要移位16位......
-----------------------------------------------------------------------

usb转并口只是我最早最早的想法,后来知道usb发送数据的原理后,就再也没有考虑过这样做了。
之前我弄ejtag的时候,最早只是简单的将数据通过usb送出去,速度很慢,后来发现很多时候数据可以优化,一次性组成更大的数据包,再发出去,速度就有提升了。
当然,用SAM3U是很好,我只是觉得,起步就搞得那么复杂,有必要么?
胡言乱语,罪过罪过,见谅见谅……

出0入0汤圆

发表于 2010-3-21 14:09:40 | 显示全部楼层
【373楼】 bone

问题是,简单的架构能达到项目目标么?我觉得,做开源的东西,如果没有性能上的目标,那么始终是小打小闹,没办法成气候。

我再总结下我们目前的架构是如何得出的:

LPT口的wiggler慢 -> 加PLD器件 -> LPT口不常见了 -> 改USB口 -> 全速USB的可用带宽最大1MB/s很受限制(况且我们要模拟的下载线
很多已经是高速USB了) -> 需要高速USB接口
-> 最最常用的cy7c68013a不能用(0xa0这个VR不能被禁用,这样我们的设备没有办法模拟其他用68013的下载线) -> 必须找替代品
-> 根据性价比,我们选择了SAM3U,考虑到灵活性,PLD选用FPGA;同时考虑到成本低和灵活性,我们选择了多个板子层叠的方式。

我强烈建议,每个回复说我们硬件复杂的网友先仔细理解我上面说的一系列我们已经作出的决定。

出0入0汤圆

发表于 2010-3-23 09:20:55 | 显示全部楼层
回复实在是太多,看的头晕!

LZ 想做什么? JTAG吗 ?那没有必要这么复杂!cy7c68013a+FPGA的架构,速度已经可以很快了! 典型的就是H-Jtag!

如果能找到货源的话, TI公司,有专门的总线转 JTAG 芯片, 连FPGA都省了·

LZ 可能想做一个大而全的东西,可是一个开源,完全是自发DIY的项目,我个人觉得,第一版应该选择简洁的软硬件方案!

否则,这个项目可能会被开发中的软硬件BUG拉进泥潭!

第一版成功之后,可以陆续的加入新的功能!

另外,很多的工作应该放在PC端去做,下位机最好只是简单的数据传输和逻辑转换!都说模拟的bit bang 方式 速度上不去, 国外有一

个有名的开源项目usbprog,是usb+AVR的方案,可以模拟很多东西 ,USB to Spi IIC UART JTAG 等等,他的Jtag 就是Bit bang 方

式!它的速度就很慢,配合OpenOCD ,速度就只有 0.2K bytes / s !

     我采用的C8051F342 方案,经过改写PC的JTAG驱动程序, BitBang方式的速度,已经超过我的PCI转并口卡 ,今天我用最新的驱

动,测到速度是 7K bytes / s !

    不明白“最最常用的cy7c68013a不能用(0xa0这个VR不能被禁用,这样我们的设备没有办法模拟其他用68013的下载线) -> 必须找替

代品”这句话的意思!

    你是想,用你的硬件,去配合别人的PC 软件吗?比如说 H-Jtag 用的是 cy7c68013a+FPGA , 你可以用你的硬件去 配合H-Jtag的

软件,让PC的软件 觉得 连上来的就是 H-Jtag的仿真器吗?

   如果你这句话是这个意思,我个人觉得这个工作量太大了,你需要去分析正版设备的usb数据包,明白每一个包的用途,然后用你的

硬件去完成这个功能!工作量大不说,而且涉及到法律层面,版权的问题!

     还有,cy7c68013a的 GPIF 功能是提高数据吞吐量的关键,如果所有的数据 通过 8051的内核去转, 速度肯定上不来!

胡言乱语,罪过罪过,见谅见谅……

出0入0汤圆

发表于 2010-3-23 20:54:18 | 显示全部楼层
同意375楼的观点!

出0入0汤圆

发表于 2010-3-24 00:09:56 | 显示全部楼层
回复【374楼】minux 啊啊?
-----------------------------------------------------------------------

同意你的观点!这样的方案并不会很贵,而且灵活!开源的东西本来就是拿来玩的嘛!太注重成本,太注重开发时间,搞得反而像是种商业的东西!

出0入0汤圆

发表于 2010-3-24 00:40:15 | 显示全部楼层
来瞻仰一下

出0入0汤圆

发表于 2010-3-24 09:12:10 | 显示全部楼层
关于这个项目,今天又想到一点! 写出来,希望 minux 啊啊? 关注!

看到你说,这个项目有一个功能 就是ARM 的Jtag 调试!那么大家有没有注意到!

ARM 的 开发环境,  GCC 下 基于GDB的调试环境,目前开源最好的是OpenOCD,这可以根据自己的硬件来修改!但是,Windows下

主流的是 keil ,ADS, RVDS ,这些都是使用RDI接口,来完成协议物理层转化的,RDI接口目前还没有完全开源!

如果这个项目在PC软件上不能搞定RDI驱动,那么就只能当做JTAG烧写器来用!

对于Jtag烧写来说,如果自己写PC端的软件,就太累了,为什么! 因为,你需要把能支持的目标板找来,根据每个平台的资料,

各写一套东西,工作量太大了!

还有就是,并不是USB和MCU的处理速度有多快,烧写速度就能有多快!烧写的速度很大程度上决定于flash的操作时间和 JTAG链装态

转移的时间!

举个例子!

我工作中,ARM调试用的是USB的TRACE32 ,这款仿真机应该算是ARM仿真机的老大!TCK可以到几十MHz,但是烧写ARM11的NAND,速度

也只有200k bytes/s !

所以,个家直言,这个开源项目,如果是作为一个USB的开发板,我觉得很好,功能很全!usb to uart ,spi iic jtag 等等,都很

好!

但是如果专注于JTAG的调试和应用,那么PC上的软件很关键!能不能很好的搞定RDI,直接决定这款硬件能否作为JATG调试器使用!

当硬件具备了高速的前提,能不能真正达到高速,完全在于RDI驱动的实现!

出0入0汤圆

发表于 2010-3-24 09:53:59 | 显示全部楼层
有一个建议,希望讨论的时候不要使用过多的叹号。

叹号不能 提升 信息、文字本身的 价值和重要性。但是很大程度上影响别人阅读文字本身。

如果键盘上的句点坏掉了,出于节约Shift和1键寿命的考虑,建议换用逗号或者空格表达。谢谢。

出0入0汤圆

发表于 2010-3-24 10:15:03 | 显示全部楼层
回复【375楼】zclcom79  
回复【379楼】zclcom79  
-----------------------------------------------------------------------

首先,我赞成“【374楼】 minux 啊啊?”所指出的,大家参与讨论,十分欢迎,但是希望能完整了解讨论的历史,而不是想起一出说一出。
回复多,潜在的可能之一是讨论内容比较丰富,看着头晕不足以够成不看的理由。毕竟讨论过的问题,谁都不愿意再出来讨论一变,乃至于解释一遍。浪费大家的时间,仅此。

对于您提出的问题,有几点:
1、单纯从假设的项目命名出发,思路局限在JTAG本身。
2、使用整体综合的观点,而不是分层抽象。
其实无所谓。

简单来说,硬件上,我们考虑的是一个平台。这个平台:
- 要有足够的性能,可接受的成本,相当的灵活度;
- 能满足我们在讨论时,视野所达到的范围内,硬件上的适应性,扩展性;
- 能满足我们在讨论时,我们能想象到的应用、软件上的各种需求,扩展,适用,可实现,易实现。

这是一个平台,很大程度上决定了上边的楼能修多高,走多远。仅此。

至于做什么用,软件支持上能走多远,那是更远的问题,这取决于有多少人愿意贡献到这个项目,平台能够提供什么样的能力。

出0入0汤圆

发表于 2010-3-31 23:01:03 | 显示全部楼层
强烈支持,现在都好几种下载线在手,烦死了!!

出0入0汤圆

发表于 2010-4-1 20:30:56 | 显示全部楼层
不得不佩服

出0入0汤圆

发表于 2010-4-11 14:27:15 | 显示全部楼层
诸位,抱歉我最近忙毕业的事情没过来参与讨论。

我考虑了一下,似乎接口这样定比较好:
1,总线只给紧邻的一块FPGA板。而由于我们的FPGA板上的接插件上下不连通,FPGA和FPGA之间的接口可以更灵活些,
更重要的一点是,如果总线上挂的设备过多,负载过重,可能不能保证足够的总线速度,甚至需要加Driver,那就
就有点得不偿失了。
2,一定要把MCU板的SRAM的CS接到紧邻的FPGA板上,同时增加DMAREQ和DMAGRAND两根GPIO,这样我们可以让上位机
过来的编程数据直接让FPGA从SRAM总读取,使得MCU在此期间能做其他的事情(如果可能,其实可以在MCU上加CPLD
和两片SRAM做ping-pong模式,抑或是那上面干脆除了给MCU单独用的SRAM之外加一个FIFO算了,然后MCU总线彻底
不暴露或者暴露较少的一部分给FPGA板)。因为我们还是需要考虑清楚给FPGA的总线是要做什么,有什么需求,然后
再定,如果是仅仅传数据的话,FIFO(单向传递用超级廉价的AL422B就足够了,双向传递的话倒是用FPGA内部做FIFO
比较好)足以,是否需要用总线控制FPGA的配置以及其他的信息传递。不过怎么说,似乎让所有FPGA板都挂在总线上
意义不大。

如果增加了这个简化,似乎接口就没有那么多要讨论的事情了,现在来看,赶紧出硬件板子是个首要的事情了。
大家讨论下我说的两点?

出0入0汤圆

发表于 2010-4-11 16:40:47 | 显示全部楼层
回复【384楼】minux 啊啊?
-----------------------------------------------------------------------

1、总线不穿板这个我赞成,当初提出堆叠方案,只是为了使三部分分开设计,方便替换并提高成功率
总线穿板对接插件设计压力很大

2、支持DMA没什么问题,但关键是FPGA要承担哪些工作
对于IO和逻辑分析仪来说,FPGA并没有太多工作要做,至于JTAG我就不是十分了解了

出0入0汤圆

发表于 2010-4-11 17:06:17 | 显示全部楼层
【385楼】 h2feo4 无机酸

JTAG方面,初期我是这么考虑的,FPGA可以先模仿TI的JTAG Master: sn74lvt8980a,这样把JTAG状态转移和数据并串转换帮MCU处理。
后期的话,就得在实现了各种JTAG协议后提取最需要在硬件上完成的工作。这样来看,FPGA需要有并行数据线以及一些控制线。
我们当然可以完全模拟8980或者略加扩展成16位总线等…… 但是我觉得更好的是我们把控制信号用其他的方式传送,比如SPI接口,
这样的好处是FPGA可以在获取了总线直接从SRAM中取数据的时候MCU和FPGA依旧可以通讯(比如强制abort某个操作)。

IO和逻辑分析仪,FPGA主要就是数据采集吧,分成SPI甚至GPIO控制,然后数据通过DMA直接和SRAM交换。

如果这么分析,我觉得我们可以把SRAM的地址线和数据线都给FPGA,MCU对FPGA的控制使用SPI(高速),GPIO(低速/异步通信);
不建议IIC,那个留给单片机用吧,FPGA实现它不如SPI方便,而且它也没有任何优势。(当然,如果大量数据,比如逻辑分析仪时候,
FPGA里面做个FIFO,然后让MCU的DMA往USB送是最方便的)。

出0入0汤圆

发表于 2010-4-13 22:08:46 | 显示全部楼层
最近有个机会做4层板,我们要是能在一周内搞定几块板子的布线,就可以上4层板啦。
所以,加油吧~

出0入0汤圆

发表于 2010-4-14 15:35:14 | 显示全部楼层
总体来说,应该是这个样子的

      MCU-------SRAM
       |
       |(SPI/SSC/Parallel BUS)
       |
     FPGA-------DRAM
       |
       |
       |  
      IO

只考虑1块MCU板,1块FPGA板,1块IO板的情况
估计IO板用不着上四层
接插件选用40pin 2mm,还是50pin 1.27mm的?

出0入0汤圆

发表于 2010-4-14 23:45:50 | 显示全部楼层
就这样吧:
      MCU-------SRAM
       |
       |(SPI/SSC/Parallel BUS with SRAM nCS/IIC/GPIO)
       |
     FPGA-------DRAM
       |
       |
       |  
      IO

其实FPGA-FPGA还是可以支持直接连接的,所以配置还是得考虑下这个问题。
但是比如说IO-FPGA-IO之类的方式不支持…… 这样IO板也简化了…… (但是总IO数就很受限了?这个还得斟酌下……)

接插件就主要考虑牢固性和拔插的方便性等吧,我没用过这个pitch的,所以你们决定吧。

出0入0汤圆

发表于 2010-4-15 11:02:48 | 显示全部楼层
回复【389楼】minux 啊啊?
-----------------------------------------------------------------------

如果 160pin 够用,就用 2mm 贴片排针的好了
考虑要有 40pin 是电源和地
总线 24A + 16D + 16C(含SRAM控制线,DMA控制线),共 56pin
同步信号 RST/CLK/Sync 等,8pin
配置信号 SPI/SSC/GPIO 等,16pin
全局信号 IIC/UART/GPIO 等,8pin
共计128pin
如果总线要穿板,留给IO的就只有32pin
不穿板的话,有88pin

出0入0汤圆

发表于 2010-4-17 22:51:32 | 显示全部楼层
【390楼】 h2feo4 无机酸

总线别穿板了吧…… FPGA之间通信就别用总线了,MCU其实只要和第一块FPGA直接通信即可。

举例:
逻辑分析仪/示波器类采集类仪器
FPGA每个都实现成FIFO,类似Cypress的FIFO级联那样,MCU从一端读取数据即可(其实如果FPGA内部存储不够大,换一个
外接RAM的FPGA板估计比用多个FPGA更合适些)

话说,如果项目真是大到真是需要FPGA之间通信,我们这个架构估计就不太适应了…… 但是目前FPGA的容量我觉得应付
这类工作还都是没啥问题的,总线还是别穿板了吧。

另外,PQ208的最多158个单端IO,这个还是有点少啊…… 另外,得注意下同步信号和可能走高速的信号尽可能布几对
差分线对吧,以后扩展估计会好些。

用2.00mm pitch的排针和插座我觉得可行(拔插多次足够牢固就行啦)。

出0入0汤圆

发表于 2010-4-17 23:50:02 | 显示全部楼层
拆开BDI3000,里面使用了Codefire芯片和一FPGA带有Flash和SDRAM,支持网卡和串口连接方式,支持不同的固件来调试不同的处理器。自己定义一些配置文件可以支持不同的新处理器。功能相当强大,价格也强大。
AD2009 电路软件自带的一个JTAG 使用的是NXP2888,来实现JTAG的也可以借鉴,网上提供电路原理和代码!

出0入0汤圆

发表于 2010-4-18 01:20:15 | 显示全部楼层
【392楼】 zm2002

恩,如果以后有机会做开源的高端JTAG/BDM,那么确实得参照BDI3000这样的思路来做…… 我估计会是ARM9(ucLinux?) + FPGA。
网口啥的都有了……

哈哈,那是纯yy,还是先把这个中端的项目做好吧~

不过AD2009里面的那个JTAG叫啥?我竟然从没听说过…… LPC2888…… 这个带有HS USB+1MB Flash/64KB RAM的60MHz ARM7
让我yy得好惨啊…… 唉,NXP从来不考虑我们这些散户…… 是TFBGA-180封装的…… DIY几乎没希望(主要是制板上的压力)……

出0入0汤圆

发表于 2010-4-18 06:07:16 | 显示全部楼层
标记

出0入0汤圆

发表于 2010-4-18 13:50:51 | 显示全部楼层
回复【391楼】minux 啊啊?
-----------------------------------------------------------------------

总线不穿板省事很多呢
至于差分,我觉得在布线空间充足的情况下,搞20对,16对给IO,4对给CLK/Sync等

不过PQ208的158个IO光是系统信号/总线/IO就差不多用光了,上DRAM有点困难呢

另外,我预计5月初会有一次打样6层板,可以考虑把这个拼进来

出0入0汤圆

发表于 2010-4-18 21:57:07 | 显示全部楼层
【395楼】 h2feo4 无机酸

恩,目前的形势下,FPGA要还想接DRAM,那还真是得上BGA封装的了……

另外,我觉得我们还是能不用6层板就不用吧……(使用BGA封装的FPGA除外当然) 否则大家不容易DIY……

其实我觉得我们在软件稍微确定些之后,还应该搞一个两层板的方案方便大家自己制作。

你做6层板其实可以给这个做一个用FG256封装的带有DRAM的FPGA板?这样你的逻辑分析仪也有平台了,呵呵。

出0入0汤圆

发表于 2010-4-19 11:02:46 | 显示全部楼层
回复【396楼】minux 啊啊?
-----------------------------------------------------------------------

貌似是个不错的主意
那我就搞块6层的FPGA板,正好手里有XC3S500E-FT256的库存
既然上了6层板使了BGA,估计也不在乎用用DDR2(不过貌似DDR控制器要占掉不少逻辑)

连接件的电气定义再考虑一下

出0入0汤圆

发表于 2010-4-19 21:50:02 | 显示全部楼层
【397楼】 h2feo4 无机酸

en 连接器电气定义我觉得主要得考虑下MCU在2层板上布线时的方便问题。

另外,FPGA板(如果IO足够的话)用多片SDRAM就行吧?一定要用DDR/DDR2么?
用DDR/DDR2假设只用1个bank的话,那么最多16位宽度(且不说3S500E用DDR2控制器得占不少资源)……
还得单独开一个IO bank伺候他们……

我觉得有可能的话,用3.3V的SDRAM吧,要想速度快多来几片并行用。(另外,我也不建议在S3E上面用DDR2,
虽然Xilinx是说可以的…… 主要是DQS和DQ不像Altera的Cyclone那样分组,延时之类不好弄…… 所以即使能搞,
速度也有点怕……要是Spartan6好搞,上个这个倒是非常爽的~哈哈,硬core...)

哦,对了,IO板非Target一侧的的Vcc怎么给?是走接插件还是固定在3V3?
各有好处,好处是我们可以根据FPGA这边的情况给,坏处是,一得多占几根线走Vcc,二是我们还得把这个
定义到接口定义里面(那个管脚的Vcc管哪几个IO的电平)。

FPGA板估计得考虑单独供电?还是MCU板上另留5V电源插头?

出0入0汤圆

发表于 2010-4-19 22:05:34 | 显示全部楼层
好东西啊!

出0入0汤圆

发表于 2010-4-19 22:13:22 | 显示全部楼层
回复【398楼】minux 啊啊?
-----------------------------------------------------------------------

说到在两层板上布线方便,那主要还是看MCU板了吧,FPGA板相对来说还是自由度高得多,不过我觉得考虑未来的应用,接插件保留扩展至32A + 32D总线的空间

用SDRAM我没有意见,不用分bank了省事,DDR还是等S6方便

VCCIO我觉得就固定在3.3V吧

5V肯定要放在接插件里面,我考虑的是在MCU板上放置3.3V电源,接插件上提供5V和3.3V,每块板自己负责其他电压

出0入0汤圆

发表于 2010-4-20 00:18:06 | 显示全部楼层
【400楼】 h2feo4 无机酸

对,我的意思就是说引脚定义要看MCU的管脚的布线方便…… 规整性其次…… 当然规整点也好,不过考虑FPGA那么容易
变管脚分配,我们到时候设定好了管脚给一个tcl脚本出来即可,也不用其他用户费劲。

同意Vccio固定3.3V。我们得注意规定下其他板从3.3V上最多取电多少……

SDRAM估计可以上至少两片吧,那样速度就乘以2了,作为参考,J*Trace用的4片16位166MHz的SDRAM,实现的数据实时采集是
最高200MHz的信号,宽度暂时还不好说,但是我估计怎么得>=24位吧(FPGA是EP1C6Q240C6N),但是其实我觉得得应该有32位以上。
如果我们做200MHz的逻辑分析仪,我觉得两片16位的166MHz SDRAM,到12通道怎么着是可以做到的,更多的通道其实考虑
数据冗余性,在FPGA里面做一点压缩…… (话说,其实那么快的信号,一般的连接线,信号完整性已经很成问题了,我们
估计在数据采集方面做到这个规模已经非常足够了吧。) 如果不管IO的数目,直接上4片,那就无敌了(估计会受限于FPGA)。

这个项目得赶紧做起来了…… 某仿真器公司去年就在说Cortex-A8的支持coming soon,结果到现在还没有兑现…… 更fz的是据说
要到年底…… 这个让我彻底不准备继续等了,还是自力更生吧,我不准备买别的支持A8的仿真器,omap3530只能用XDS560,那个
调试Linux很痛苦或者几乎不可能,所以还是决定自力更生吧,最近得开始阅读OpenOCD的代码,从这里估计能给我一些JTAG仿真器
什么操作最需要在硬件级别完成的信息。前面一段我一直纠结于找一个好的合适的RTOS,现在看还是算了吧,随便用一个吧,那个
对我我们项目来说真不是关键的…… (说一下,我找的结果非常不满意…… 开源的RTOS我现在基本都或多或少看过源代码了,说
实话没一个让我完全满意的…… ft...)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 22:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表