Oct
17
红外线已经不是什么新鲜玩样儿了,我们的生活中也到处可见其踪影:从电视、空调的遥控器,到男洗手间的自动感应小便池。下面是一个感觉还蛮人性化的红外线应用:

从技术上来看其实不是什么难事,只是人离开近的时候显示详细资料,人离开远的时候用大字显示时间的钟。但是在设计和想法上,还是可以学习和借鉴的。
资料来源:
Engadget China

从技术上来看其实不是什么难事,只是人离开近的时候显示详细资料,人离开远的时候用大字显示时间的钟。但是在设计和想法上,还是可以学习和借鉴的。
资料来源:
Engadget China
Oct
17
经常用VHDL的Generate语句,却对Verilog的generate不太熟悉。
下面是查了XST User Guide后得知的Verilog中generate的语法:
1. generate语法有generate for, genreate if和generate case三种
2. generate for语句必须有genvar关键字定义for的变量
3. for 的内容必须加begin和end
4. 必须给for语段起个名字
例子:
更详细的用法请在XST User Guide中搜索generate。
下面是查了XST User Guide后得知的Verilog中generate的语法:
1. generate语法有generate for, genreate if和generate case三种
2. generate for语句必须有genvar关键字定义for的变量
3. for 的内容必须加begin和end
4. 必须给for语段起个名字
例子:
引用
generate
genvar i;
for (i=0; i<=7; i=i+1)
begin : for_name
adder add (a[8*i+7 : 8*i], b[8*i+7 : 8*i],
ci[i], sum_for[8*i+7 : 8*i], c0_or[i+1]);
end
endgenerate
genvar i;
for (i=0; i<=7; i=i+1)
begin : for_name
adder add (a[8*i+7 : 8*i], b[8*i+7 : 8*i],
ci[i], sum_for[8*i+7 : 8*i], c0_or[i+1]);
end
endgenerate
更详细的用法请在XST User Guide中搜索generate。
Sep
24
ISE iMPACT和ChipScope Pro都支持远程调试,Client可以通过网络连接到一台装了Cable的Server电脑进行配置。
远程调试可以达到多人共用一块Demo板的目的。
ISE iMPACT的Server程序是%XILINX%/bin/nt/cableserver.exe
启动server后在Client端通过iMPACT的Cable Setup设置IP地址。
ChipScope Pro的server程序是%ChipScope%/bin/nt/cs_server.bat
启动server后在Client端通过ChipScope Analyzer的JTAG Chain --> Server host setting设置IP地址。
远程调试可以达到多人共用一块Demo板的目的。
ISE iMPACT的Server程序是%XILINX%/bin/nt/cableserver.exe
启动server后在Client端通过iMPACT的Cable Setup设置IP地址。
ChipScope Pro的server程序是%ChipScope%/bin/nt/cs_server.bat
启动server后在Client端通过ChipScope Analyzer的JTAG Chain --> Server host setting设置IP地址。
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







