Sep
13
新闻来自 MyDrivers
http://news.mydrivers.com/1/91/91047.htm


使用到的器件列表:
Gateway M275 显示屏2个 (14" 1024x768): $100*2 (从eBay购得)
LVDS 模块 : $60*2
Digilent S3BOARD + 接头: $130
Nintendo DS: $100
Wacom 手写笔: $30
MyDrivers那里还收录了录像
http://news.mydrivers.com/1/91/91047.htm


使用到的器件列表:
Gateway M275 显示屏2个 (14" 1024x768): $100*2 (从eBay购得)
LVDS 模块 : $60*2
Digilent S3BOARD + 接头: $130
Nintendo DS: $100
Wacom 手写笔: $30
MyDrivers那里还收录了录像
Sep
13
新闻来自
[EmbeddedTechJournal]ARM Optimizes for FPGA (2007.3.20)
[FPGAJournal]ARM and Altera (2007.9.11)
ARM一开始为Actel做软核并不引起多大的反响,可能一来因为他们两家本来就是合作伙伴,二来Actel的影响力实在不够大。
半年之后,ARM(其实是ARROW)又推出了为Altera优化的Cortex-M1核,又引起了人们无限的猜想
——ARM只和A开头的公司合作么?
——Altera会是最后的合作伙伴吗?
——ARM加入FPGA软核提供商行列会对FPGA的发展产生怎样的影响呢?
首先我认为A-company不会是终结。
看这趋势,就觉得ARM要做一个FPGA业界通用的软核,性能不一定是最高的(FPGA厂商自己做的软核肯定是最适合自己的硬件的,要做到通用就可能需要牺牲一些性能,但是ARM也能根据各个FPGA做不同的优化,所以性能也不会差),但通用性一定是最好的——硬件的通用性:可以在各种FPGA上实现,而不仅局限于一家;软件的通用性:使用统一的平台开发软件,软件代码兼容。如果要做通用系统,就不可能放弃Xilinx这块至少现在还占据大半江山的大肥肉了。
接下来看看ARM是怎么做的。
ARM and Altera一文中提到,要使用Cortex-M1,必须使用Altera的SOPC Builder去例化Cortex-M1核。而且整个嵌入式系统所使用的总线是Altera的Avalon总线,而不是他自己的AMBA,原因就在于在FPGA内部,厂商已经为自己的软核订制好了很多peripheral IP。如果坚决使用AMBA,那么这些IP就必须重写,这显然是费时费力的事情。 所以ARM需要做的,就是把Cortex-M1优化为适应FPGA的结构(LUT Based),而且把CPU总线改成FPGA厂商的总线——我想应该不是在自己的总线外部加总线转换,这样效率实在低下。最后的成果需要在用户层看上去所有的指令都对应同样的操作,底层的实现就看他优化的本事啦。
这是机遇也是挑战。
ARM的加入对于稍显混乱的FPGA Embedded市场显然是一个振奋人心的消息。ARM的加入也会带动更多的IP厂商为FPGA写IP Core。服务完备,客户自然也会更愿意用这样的系统。
对于设计者而言,这样的系统很适合做prototype。当FPGA内的软核性能不够用,可以很方便地将CPU移到外部,用一个更贵更快的ARM芯片。当在FPGA内做完设计,也可以很方便地根据FPGA厂商的工艺将FPGA设计固化为ASIC以降低成本。
对FPGA厂商而言,通用就意味着客户粘性的降低,同时意味着客户数量的潜在增长。另一方面,厂商自己的CPU IP Core也同时受到了挑战。
参考资料:
http://www.arm.com/products/CPUs/ARM_Cortex-M1.htm...
http://www.arm.com/fpga/index.html
[EmbeddedTechJournal]ARM Optimizes for FPGA (2007.3.20)
[FPGAJournal]ARM and Altera (2007.9.11)
ARM一开始为Actel做软核并不引起多大的反响,可能一来因为他们两家本来就是合作伙伴,二来Actel的影响力实在不够大。
半年之后,ARM(其实是ARROW)又推出了为Altera优化的Cortex-M1核,又引起了人们无限的猜想
——ARM只和A开头的公司合作么?
——Altera会是最后的合作伙伴吗?
——ARM加入FPGA软核提供商行列会对FPGA的发展产生怎样的影响呢?
首先我认为A-company不会是终结。
看这趋势,就觉得ARM要做一个FPGA业界通用的软核,性能不一定是最高的(FPGA厂商自己做的软核肯定是最适合自己的硬件的,要做到通用就可能需要牺牲一些性能,但是ARM也能根据各个FPGA做不同的优化,所以性能也不会差),但通用性一定是最好的——硬件的通用性:可以在各种FPGA上实现,而不仅局限于一家;软件的通用性:使用统一的平台开发软件,软件代码兼容。如果要做通用系统,就不可能放弃Xilinx这块至少现在还占据大半江山的大肥肉了。
接下来看看ARM是怎么做的。
ARM and Altera一文中提到,要使用Cortex-M1,必须使用Altera的SOPC Builder去例化Cortex-M1核。而且整个嵌入式系统所使用的总线是Altera的Avalon总线,而不是他自己的AMBA,原因就在于在FPGA内部,厂商已经为自己的软核订制好了很多peripheral IP。如果坚决使用AMBA,那么这些IP就必须重写,这显然是费时费力的事情。 所以ARM需要做的,就是把Cortex-M1优化为适应FPGA的结构(LUT Based),而且把CPU总线改成FPGA厂商的总线——我想应该不是在自己的总线外部加总线转换,这样效率实在低下。最后的成果需要在用户层看上去所有的指令都对应同样的操作,底层的实现就看他优化的本事啦。
这是机遇也是挑战。
ARM的加入对于稍显混乱的FPGA Embedded市场显然是一个振奋人心的消息。ARM的加入也会带动更多的IP厂商为FPGA写IP Core。服务完备,客户自然也会更愿意用这样的系统。
对于设计者而言,这样的系统很适合做prototype。当FPGA内的软核性能不够用,可以很方便地将CPU移到外部,用一个更贵更快的ARM芯片。当在FPGA内做完设计,也可以很方便地根据FPGA厂商的工艺将FPGA设计固化为ASIC以降低成本。
对FPGA厂商而言,通用就意味着客户粘性的降低,同时意味着客户数量的潜在增长。另一方面,厂商自己的CPU IP Core也同时受到了挑战。
参考资料:
http://www.arm.com/products/CPUs/ARM_Cortex-M1.htm...
http://www.arm.com/fpga/index.html
Sep
12
问题:在一个Spartan 3E的设计中例化了DCM_SP。用XST综合没问题,用Synplify 8.6.2报告Error。
Illegal defparam. parameter CLK_FEEDBACK cannot be found in module DCM_SP
原因:
查找Synplify安装目录的lib/xilinx/unisims.v。其中没有对dcm_sp的描述,也就是说此版本不支持dcm_sp。
解决:
1、查到Synplify 8.8以上版本的unisims.v中均有dcm_sp,也就是说可以使用dcm_sp在synplify中综合。
2、查到ISE 8.1以前的unisim库中也没有dcm_sp,但是ISE 8.1已经支持spartan 3E。于是查看用Coregen生成的DCM模板,其.v文件调用了DCM模块,而不是DCM_SP。也就是说直接例化DCM应该也是可以的
Illegal defparam. parameter CLK_FEEDBACK cannot be found in module DCM_SP
原因:
查找Synplify安装目录的lib/xilinx/unisims.v。其中没有对dcm_sp的描述,也就是说此版本不支持dcm_sp。
解决:
1、查到Synplify 8.8以上版本的unisims.v中均有dcm_sp,也就是说可以使用dcm_sp在synplify中综合。
2、查到ISE 8.1以前的unisim库中也没有dcm_sp,但是ISE 8.1已经支持spartan 3E。于是查看用Coregen生成的DCM模板,其.v文件调用了DCM模块,而不是DCM_SP。也就是说直接例化DCM应该也是可以的
Sep
10
家里用的西门子W12无绳电话,用了一年多,电池好像不太行了。
把电池拿出来研究一下,其实就是三节AAA电池串联在一起,拉出头尾。而且三节电池总容量只有300mAh。天哪,现在一节AAA充电电池就能有个900mAh了-_-bb
于是决定自制一块电池板。
买来三节充电电池,本以为焊接之类的活总是小Case了,哪儿知道电池表面太光滑,非常难焊接,结果折腾了老半天。观察原来的那组电池,首尾连接的连接件是用薄铁皮冲在电池上的,非常牢固而且体积小。不管怎么样最后终于是完成了,也稍微有点成就感的:)接下来测试一下这组电池能用多久。
把电池拿出来研究一下,其实就是三节AAA电池串联在一起,拉出头尾。而且三节电池总容量只有300mAh。天哪,现在一节AAA充电电池就能有个900mAh了-_-bb
于是决定自制一块电池板。
买来三节充电电池,本以为焊接之类的活总是小Case了,哪儿知道电池表面太光滑,非常难焊接,结果折腾了老半天。观察原来的那组电池,首尾连接的连接件是用薄铁皮冲在电池上的,非常牢固而且体积小。不管怎么样最后终于是完成了,也稍微有点成就感的:)接下来测试一下这组电池能用多久。
Sep
4
有些情况下,一个系统中需要几片FPGA。为了验证功能正确,需要对几片FPGA同时做仿真。
这样的设计,只能做behaviour simulation,而不能做post-par simulation。原因是后仿的延时信息标注在.sdf文件中,而仿真时只能添加一个sdf文件。如果不添加延时信息,后仿又变得没有意义了。所以,我们一般都只做前仿真。后仿真都对设计单独做就可以了,只需要保证功能与前仿真相同。
做前仿真时,方法也很简单,就是在testbench中例化两个FPGA的设计,然后用wire将它们互联起来就可以了。
这样的设计,只能做behaviour simulation,而不能做post-par simulation。原因是后仿的延时信息标注在.sdf文件中,而仿真时只能添加一个sdf文件。如果不添加延时信息,后仿又变得没有意义了。所以,我们一般都只做前仿真。后仿真都对设计单独做就可以了,只需要保证功能与前仿真相同。
做前仿真时,方法也很简单,就是在testbench中例化两个FPGA的设计,然后用wire将它们互联起来就可以了。







