摘要:安装ISE和Vivada: 安装USB转UART驱动 安装USB转JTAG驱动插件http://blog.sina.com.cn/s/blog_c248f6b70101apx9.html
阅读全文
摘要:最近在FPGA程序全综合时碰到了个奇怪的问题:Warning: Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details查看了compilation report-> I/O Assignment Warnings 提示是 输出管脚“ Missing drive strength and slew rate”。记得用过CycloneII芯片就不会出现这种警告,google了下,是因为后续高级的芯片的 drive strength 和 slew rat
阅读全文
摘要:http://hi.baidu.com/michael1517/item/39d97b744d33215c0d0a07d9Altera公司的Quartus II开发工具可以生成多种配置或编译文件,用于不同配置方式。对于不同的目标器件,编译后开发工具会根据指定的FPGA器件自动生成“.sof(SRAM Object File)”和“.pof(Programmer ObjectFile)”配置文件。“.sof”配置文件是由下载电缆将其下载到FPGA中的;“.pof”配置文件是存放在配置器件里的。用单片机配置时,要将“.sof”文件转换成“.rbf(Raw BinaryFile)”文件,可打开Qua
阅读全文
摘要:在用Verilog 语言进行RTL建模的时候,适当的对要完成的模块进行划分是一个很好的建模习惯,在保证功能要求的满足的前提下,能够使自己的代码容易理解,维护,并减少一些容易忽视的错误。在编写大型的程序时尤其重要。以下就用计数器四分频时钟的两种实现方式来对比以下划分模块与否的优缺点。 四分频后的波形要求是第一个时钟周期输出高电平,后三个时钟周期输出低电平,占空比为25%。可以很容易的看出来需要一个两位的计数器,并在计数的过程中进行判断,什么时候输出高电平,什么时候输出低电平。 可以看出来四分频系统设计到两个操作:对时钟进行计数和判断输出波形。这两个部分可以划分为两个模块:计数器模块和判断输出模块
阅读全文
摘要:在FPGA中涉及到管脚的多功能选择:某些管脚既可以分配为普通的IO管脚,也可以分配为编程引脚。默认的话这些特殊的引脚做作为编程引脚,如果要想把这些引脚作为普通的IO口来使用的话,必须在FPGA的开发工具中进行设定,将其选择为普通的IO口,否则会出现如下错误:Error: Can't place multiple pins assigned to pin location Pin_30 (IOC_X0_Y8_N0) 上述错误就是由于把管脚30当做普通的IO口,而开发工具又将其当做编程引脚,这样就会引起冲突。一般出了在需要使用到编程引脚的功能外,都应该显式的把这些具有特殊功能的引脚设定为普
阅读全文
摘要:在编写C语言和C++程序的时候,经常会为了一些查不出原因的错误头疼,仿佛感觉自己想破脑袋也不知道错在哪里。今天就又遇到了这个问题,而且不是第一次。 在NIOS IDE下用C语言开发串口程序,有一条语句是用来设置波特率的: UART->DIVISIOR.WORD=(unsigned long int)(CLOCK/num+0.5); 编译器在编译的时候在该处报错:严重的error before “;”; 当时想破脑袋也看不出来这句话错在哪里,只好硬着头皮将所有的头文件和源文件重新看一遍,不经意间注意到对CLOCK的预定义为:“ #define CLOCK 100000000;” 突然恍然大
阅读全文
摘要:最近在工作当中遇到了一点小问题,关于C语言头文件的应用问题,主要还是关于全局变量的定义和声明问题.学习C语言已经有好几年了,工作使用也近半年了,但是对于这部分的东西的确还没有深入的思考过.概念上还是比较模糊的,只是之前的使用大多比较简单,并没有牵涉到太复杂的工程,所以定义和声明还是比较简单而明了了的.但是最近的大工程让我在这方面吃到了一点点苦头,虽然看了别人的代码能够很快的改正,但是这些改正背后的原因却不知道.我想大多数喜欢C语言的程序员应该是和我一样的,总喜欢去追究程序问题背后的底层原因,而这也恰恰是我喜欢C语言的最根本的原因.今天看过janders老兄在csdn上的一篇文章后,理解的确加深
阅读全文