摘要: 异步FIFO设计笔记:1. 首先确定输入输出接口,异步FIFO在一个时钟域中进行写数据操作,而在另一个时钟域中进行读数据操作,所以在写数据模块,需要有写数据wdata,写时钟wclk,写复位wrst_n,写请求wreq,写满标志wfull;在读数据模块,需要有读数据rdata,读时钟rclk,读复位rrst_n,读请求rreq,读空标志rempty。其中rdata,rempty,wfull为输出信号,其余为输入信号。2. 考虑如何产生满标志和空标志位,当读写地址相同时表示当前FIFO已经被读空了或者被写满了,此时读指针rptr和写指针wptr地址相同。n 本实验采用象限比较法,先确定当前读写状 阅读全文
posted @ 2011-04-21 17:29 xxfighting 阅读(1770) 评论(0) 推荐(1) 编辑
摘要: 刚学习NIOS时,也出现过下面这个问题,后悔当时没有记录下来解决的方法,现在又出现,也不知道怎么解决了。Using cable "USB-Blaster [USB-0]", device 1, instance 0x00Pausing target processor: not responding.Resetting and trying again: FAILEDLeaving target processor paused记得最近上一次出现这个错误时,是因为我的reset_n的脚没有接上去,昨天程序都跑得好好的,今天一来,就又不行了,正在找解决方案。。。。。。发现问题 阅读全文
posted @ 2011-03-24 10:06 xxfighting 阅读(3193) 评论(3) 推荐(0) 编辑
摘要: Abstract當使用JTAG將Quartus II編譯的sof燒進DE2後,只要一斷電就沒了,所以想燒到epcs內,這樣通電後馬上就可執行,但卻遇到以上的錯誤訊息。Symptom使用環境:Quartus II 7.2 SP3 + DE2( Cyclone II EP2C35F672C6)原本使用JTAG燒進DE2,皆可正常執行,但將swtich從RUN切到PROG後,使用Programmer出現以下錯誤訊息:Solution要將程式燒到flash執行,請依照以下步驟。Step 1:設定使用EPCS16這個flashAssignment -> Device : Device and Pi 阅读全文
posted @ 2011-03-17 16:41 xxfighting 阅读(4081) 评论(0) 推荐(0) 编辑
摘要: 简单的可以理解为:heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。预备知识-程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) - 一般... 阅读全文
posted @ 2010-10-19 11:06 xxfighting 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 今天看文档时,突然发现自己从来没有在DE2上的LCD显示器上显示过文字,于是就来做了一个这样的实验,结果在下载.sof文档的时候,又出现了Info: SRAM Object File E:/DE2_NIOS/DE2_NIOS_time_limited.sof contains time-limited megafunction that supports OpenCore Plus feature... 阅读全文
posted @ 2010-09-01 14:49 xxfighting 阅读(1504) 评论(1) 推荐(0) 编辑
摘要: C語言有兩種字串宣告方式char s[]和char *s,兩者有什麼差異呢?Introductionchars[]="HelloWorld";char*s="HelloWorld";皆宣告了s字串,在C-style string的函數皆可使用,但兩者背後意義卻不相同。chars[]="HelloWorld";的s是個char array,含12個byte(包含結尾\0),"Hello World"... 阅读全文
posted @ 2010-08-26 16:09 xxfighting 阅读(4052) 评论(0) 推荐(1) 编辑
摘要: ++i和i++哪个速度较快呢?在C++ Primer 4th整本书中,都是用++i,我今天特别跑去问C++老师为什么,答案是因为++i较快,所以C++ Primer才都使用++i。++i相当于1i=i+1;2returni;而i++相当于1intj=i;2i=i+1;3returnj;由于i++还必须copy值给j,所以速度较慢。 阅读全文
posted @ 2010-08-26 15:55 xxfighting 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 在C/C++中,只要宣告一个变量,如int i,尽管没去用它,内存已经占了4 byte的内存了,这个动作称为Definition,以下简单的源代码即可证明,结果可显示该变量的内存地址。1#include<iostream>23usingnamespacestd;45intmain(){6inti;78cout<<&i<<endl;910return0;1... 阅读全文
posted @ 2010-08-26 15:53 xxfighting 阅读(206) 评论(0) 推荐(0) 编辑
摘要: a = 1、b = 2、c = 3...以此类推,若输入字串abc时,表示1 + 2 + 3 = 6,若输入字串abcd时,表示1 + 2 + 3 + 4 = 10。执行結果abc66、7行while(*s)sum+=(*s++-96);由于C语言字串以'\0'为結尾的特性,所以我们大胆地使用while(*s != '\0'),又因C语言『非0为true』的特性,所以可省略成while(*s),若... 阅读全文
posted @ 2010-08-26 15:21 xxfighting 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 首先,对memest()函数进行一下介绍。memest原型 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); memset:作用是在一段内存块中填充某个给定的值,它对较大的结构体或数组进行清零操作的一种最快方法。 常见的三种错误 第一: 搞反了c 和 n的位置. 一定要记住 如果要把一个... 阅读全文
posted @ 2010-08-26 11:27 xxfighting 阅读(2974) 评论(0) 推荐(0) 编辑