hclmcu

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、打开NIOS II IDE  建立好工程以后,先编译一下(Ctrl+B),然后打开system.h检查下目标硬件信息是否正确,

  避免选择错误的目标硬件。

2、在NIOS II IDE 编写程序的时候随时保存。

3、在用SOPC builder建立软核系统时,系统的名字不能和cpu及Peripherals等的名字相同,否则Quartus编译将会出错。

4、(搭个车,写个Verilog要注意的小问题)

    reg x,c,d;

    reg [1:0] a;

    reg [1:0] b;

    reg [1:0] y;

       当“=”的左边最大位宽变量的宽度为2时,“=”左边的位宽如果不为2时,系统将自动把高位去掉。

   如:{x,y}={a[1:0]+b[1:0]+c}; “=”右边位宽最大的变量的位宽是2,所以“=”右边的x不管是否有值都会被编译掉。

   如下面的写法则不会出现这种问题:

   {x,y}={a[1:0]+b[1:0]+c,d};

5、废话再多说一遍,工程路径下不要出现中文。
6、在用Modelsim仿真,编写testbench文件的时候,当复位信号初始化为0,而你想让复位信号变成高电

   平的时候,先要延迟一小段时间(即使复位信号先处于低电平一段时间),然后再把信号拉为高电平。
7、这句还是废话,不过还是要注意:不能在不同的always模块中操作同一个变量(因为always语句是并

   行执行的,编译软件分不清哪一个always模块里的操作是你想要的操作)。否则会出现下面的错误:

 (ISE软件中的错误提示)

 

 (Quartus中的错误提示)

   错误提示信息的内容都是:变量(在不同always模块中重复操作的变量)有多个驱动,即该变量对应有多个值,这是不允许出现的。

8、Verilog的:

当一个变量已经定义为output了,当使用assign给它赋值的时候则不用再定义wire型了,当没有定义为output型时,要用assign给它赋值的时候,刚要定义为wire型了,但是wire型的变量在always里是可以赋给reg型变量的。

9、xps软件(user_logic)的:

当出现这个错误时: line 443 unexpected token: 'end'。问题一般是在443行有条语句没有加“;”。

10、xps软件(10.1)的:

当已经添加了的ip核文件被修改以后(比如添加了外部引脚),刷新后再到ports标签下添加新的引脚,否则刚添加的引脚是不会出现在ports标签下的。

11、xps软件(10.1)的:

在sourcse标签下添加新的C文件(add new file),在写C文件的名字时,要注意把后缀名(.c)也同时写上,否则软件不会默认为C文件的。

12、ISE软件(10.1)的:

当拷贝工程到当前的工程的时候(或者是由于改变了输入输出),此时引脚需要重新分配(修改ucf文件),如果在分配引脚的时候,软件显示已经把你修改以后的引脚正确显示出来,并且你 也将其分配完毕,但是在综合的时候软件报出错误,此时的解决办法是:在你的工程目录下,搜索ucf文件,并把其都删掉,重新双击Floorplan IO—Pre—synthesis,重新生成ucf文件并正确将其分配。

 13、ISE软件(10.1)的:

在顶层文件要调用其它的模块时,如果是用“include”将其它模块包含进来的话,那么在其它模块里define的内容也适用于顶层模块;否则(只是将其添加到一个工程中,并未用include将其包含进来,而是直接调用),define的内容将不适用于顶层模块。

14、nios  ii 9.1的:

IOWR_ALTERA_AVALON_PIO_DATA(A,B)命令中,A处要与system中的完全相同(注意不管.bdf文件中的标号是大写还是小写,这个地方一定是大写)

 

~~~~~~~~~~~~~~~(待续)~~~~~~~~~~~~~~~~~

posted on 2010-07-14 19:58  hclmcu  阅读(1596)  评论(0编辑  收藏  举报