博客列表

Xilinx的增量编译技术{转载}
发表于:2012-03-31 20:08:28 | 分类:verilog-ISE
浏览( ) | 评论( )

转自Hoki博主的博文通常FPGA工程师编译较大的工程时比较头疼,因为编译时间非常长,常常需要花费几个小时,如果是在调试阶段,每次修改一个错误需要几小时,这样效率就非常低。导致编译时间较长的原因有两点:1. 设计中资源利用比较大,synthesis、translate和map需要的时间较长;2. 设计的时序比较紧张,需要反复P&R来达到最佳时序状态。如果不想修改工程代码,想要缩短编译时间,则可以采用增量编译技术,其基本原理就是根据前一次编译的结果,只重新编译部分修改过设计,其它部分则沿用前一次编译的结果,这样就可以缩短总体的编译时间。Xilinx的增量编译技术有两种:SmartGuide和Partition。 SmartGuide:这是ISE中的全局优化选项,使能这个选项,编译器在Implementation时会比较前一次编译的Implementation结果,未修改部分则沿用前一次的结果,但是如果时序比较紧张,会根据情况重新实现相应未修改部分来达到时序要求。SmartGuide主要能缩短MAP和PAR的时间。SmartGuide具体的使用方法如下:1. 右击top module,然后点击S

EDK编程学习笔记(1)
发表于:2012-03-03 22:48:09 | 分类:EDK
浏览( ) | 评论( )

#include "xparameters.h"               //头文件,里面定义了很多参数如基地址,device id等#include "xgpio.h"                          //定义了XGpio操作的api函数int main(void){ XGpio dip,led;                      

Net "pause" CLOCK_DEDICATED_ROUTE = FALSE;
发表于:2012-02-25 09:25:56 | 分类:verilog-ISE
浏览( ) | 评论( )

一段时间没写程序了,昨晚找出以前写的一个verilog程序试试手。我定义了一个输入信号pause,综合没有问题,布线的时候出错了,说明程序应该没有问题,可能是管脚分配的错误。我查看了ucf文件,管脚分配没什么问题啊,当时没找到原因。今天早上又调这个程序,根据错误信息终于找到了问题所在,“always @(negedge pause) ”,很显然ise把pause当做了一个时钟信号,时钟信号必须分配到时钟信号管脚,而实际pause是一个按键输入信号,所以布线时报错。解决的方法很简单,就是在ucf中加入Net "pause" CLOCK_DEDICATED_ROUTE = FALSE。

edk调用sram ip
发表于:2012-02-21 21:54:12 | 分类:EDK
浏览( ) | 评论( )

废话不多,附上参考的文档地址   “ bbs点ednchina点com/BLOG_ARTICLE_1929131点HTM ”,这里面写的很详细的,照着来就可以了。如果对地址线的管脚分配有疑惑,可以参考wiki点fpganotes点com/doku点php/edk:ip:emc我照着这个文档开发,开始一切都顺利,到了generator bitstrem时,却出错了。错误如下:ERROR:Pack:1107 - Pack was unable to combine the symbols listed below into a   single IOB component because the site type selected is not compatible. The   component type is determined by the types of logic and the properties and   configuration of the logic it conta

system generator之系统时间
发表于:2012-01-21 22:27:45 | 分类:system generator
浏览( ) | 评论( )

system generator模块中有一个初学者比较容易混淆的地方,就是系统时间的相关概念。需要明确3个概念:Simulink 系统周期(simulink system period)、FPGA时钟周期(fpga clock period)、fpga实际时钟周期。前两个参数可以在system generator模块中进行设置。simulink系统周期是simulink进行仿真的最小仿真步长,仅仅是为了simulink进行仿真,与最终硬件的时钟周期没有必然联系。在很多处理系统中往往选取1s为系统仿真周期,而在许多音频处理系统中往往为了配合数据输入源的速率将音频信号的采样周期作为系统周期。FPGA时钟周期是系统设计者希望此系统在硬件实现时能达到的最快速度的时钟周期,也就是fpga中的时钟约束,实际时钟周期就是开发板上的晶振周期,它可以大于fpga时钟周期。这三个时钟周期的概念相互之间是有联系的。设计者用system generator设计的模型等同于自己开发的一个ip核,其生成的顶层hdl模型会自动添加一个输入时钟接口clk,在设计者设计模型时,simulink系统周期是与fpga实际时钟周期相对应的,例如si

direct spi configration
发表于:2012-01-16 22:19:07 | 分类:默认
浏览( ) | 评论( )

网上买的一个spartan3E的板子,给的视频资料是ise9.1的。视频上说如果要把程序下到spi flash中,就选择direct spi configration,还要把下载线接到spi接口。可是我用的12.4版本没有这个选项。怎么也下不进程序。后来,我尝试把下载线接在jtag接口,程序终于能烧进flash了。我的解释是,高版本的ise只能使用jtag下载了,不支持直接配置flash。也就是要通过fpga将程序烧进flash中。有时候做事,我们不能盲目按照别人说的来,要学会自己思考,自己判断。

How far can I go?
发表于:2011-10-15 00:27:12 | 分类:默认
浏览( ) | 评论( )

这一周,第一次接触到了FPGA,是Xilinx的V2。做了一周的实验,只能说自己很无知,看着一个个程序,虽然知道整个轮廓,但是要去修改程序,实在是做不到。同时我也意识到,光是看书学习一些代码是不行的了,必须要做实验。所以在网上买了一块spartan3E的实验板,价格还有点小贵,不过没关系,花的是奖学金的钱。觉得自己是越来越着迷于FPGA了,虽然对他的还是知之甚少,没关系,不断去学习,不断充实自己。真的决定要走这条道路,两年时间,不知道到时候会是怎样的场景,我到底能走多远?人为什么活着?一直想不明白。从小学到大学,我们一直不断的学习学习,却不知道为了什么。第一次这么决然的想学一样东西,不仅仅是学,是拥有,想要用FPGA创造自己的人生。也许我会成功,也许会失败。多少年后,还有谁记得谁成功了,谁失败了。时间最后还是会将我们遗忘。