quartus常见问题解决
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
USB-Blaster问题:————————————————————————————————-
USB-Blaster Driver 驱动Vista x64环境下无法安装
直接原因:兼容性问题
可能根本原因:quartus II 8.0的驱动不含签名,而Vista x64只认带签名的驱动。
解决方案:请使用XP x32环境。
更换quartus版本无法安装USB-Blaster Driver驱动,提示“名称已用作服务名或服务显示名”
直接原因:7.2版本与8.0版本的驱动不通用
根本原因:windows驱动卸载卸不干净
解决方案:注册表删除
**同时装有7.2与8.0时,只能使用7.2的驱动————————————————————————————————-
Quartus II 8.0 问题:————————————————————————————————-
Internal Error: Sub-system: HDB, File: /quartus/db/hdb/hdb_inst_name.cpp, Line: 11432 Error accessing data member. Not data member owner
Stack Trace:
0x2853D : HDB_SYN_INSTANCE_NAME::set_m_children + 0x1D (DB_HDB)
End-trace
Quartus II Version 8.0 Build 215 05/29/2008 SJ Full Version
解决方案:删除db下所有文件,重建工程。
quartus 引脚相关
引脚手工批量导入的方法(可避免自动导入全部引脚造成的大量警告)
直接修改.qsf文件,在尾部添加引脚定义,形如:
set_location_assignment PIN_AD15 -to iCLK_50
set_location_assignment PIN_T29 -to iKEY[0]
set_location_assignment PIN_W27 -to oLEDG[0]
set_location_assignment PIN_W25 -to oLEDG[1]
set_location_assignment PIN_W23 -to oLEDG[2]
set_location_assignment PIN_Y27 -to oLEDG[3]
set_location_assignment PIN_Y24 -to oLEDG[4]
set_location_assignment PIN_Y23 -to oLEDG[5]
set_location_assignment PIN_AA27 -to oLEDG[6]
set_location_assignment PIN_AA24 -to oLEDG[7]
**使用自动导入引脚时必须注意:
Assignments->Device..->Device and Pin Options…->Unused Pins: As output driving ground 改为As input tri-stated
解决Nios II无响应
Assignments->Device..->Device and Pin Options…->Dual-Purpose->nCEO: Use as programming pin 改为Use as regular I/O
解决AD25引脚无法分配
**仿真前务必先产生网表————————————————————————————————-
DE2-70开发板SOPC Builder的配置:————————————————————————————————-
on-chip memory 大小1.1Mb 测试100kB,实际使用57KB正常
SSRAM 选CY7C1380C SSRAM 大小2MB 默认即可
FLASH 选Flash Memory(CFI) 大小8M 自定义:地址宽度22 数据宽度16 wait 100
SDRAM 选SDRAM Controler 大小64MB 自定义:数据宽32 chip 1 bank 4 row 13 col 9
Issue one refresh command every: 7.8125 us
Delay after powerup, before initialization : 200 us
PIO
LEDG 数据宽度9 output port only
LEDR 数据宽度18 output port only
KEY 数据宽度4 input port only
SW 数据宽度18 input port only ————————————————————————————————-
NIOS II8.0 问题:————————————————————————————————-
Error parsing project STF file
The software settings (STF) file associated with this project is damaged. This may be fixed by copying your source files into a new C/C++ application project. For more details see the error log.
直接原因:nios工程路径中含有空格!
根本原因:JDK6的bug 参见
/bugdatabase/view_bug.do?bug_id=6506304
解决方案:由于NIOS II使用含有该bug的JDK6的进行开发,固仅更换JRE无效……请避免工程路径中的空格
,这意味着不能使用”我的文档”等地存放工程。
常用nios II template空间占用情况
hello_world 使用jtag_uart作为标准输出的情况(以下空间占用与Nios软件配置中选择on-chip memory、SSRAM、SDRAM、FLASH无关,与SOPC builder建立的硬件配置有关,官方给出的大小是~69 kbytes)
名称优化参数1 优化参数2 优化参数3 优化参数4
hello_world 默认(-O0) 默认(-O0) -Os -Os
hello_world_syslib 默认(-O0) -Os 默认(-O0) -Os
空间占用66KB 56KB 38KB 28KB
Hello MicroC/OS-II 使用jtag_uart作为标准输出的情况(以下空间占用与Nios软件配置中选择
on-chip memory、SSRAM、SDRAM、FLASH无关,与SOPC builder建立的硬件配置有关)
名称优化参数1 优化参数2 优化参数3 优化参数4
hello_ucosii 默认(-O0) 默认(-O0) -Os -Os
hello_ucosii_syslib 默认(-O0) -Os 默认(-O0) -Os
空间占用127KB 102KB 100KB 75KB
使用jtag_uart作为标准输出与使用lcd作为标准输出的区别:在system.h中:
#define ALT_STDOUT “/dev/lcd”
#define ALT_STDOUT_TYPE “altera_avalon_lcd_16207″#define ALT_STDOUT_BASE 0×00011000
#define ALT_STDOUT_DEV lcd
#define ALT_STDOUT “/dev/jtag_uart”
#define ALT_STDOUT_TYPE “altera_avalon_jtag_uart”#define ALT_STDOUT_BASE 0×00011010
#define ALT_STDOUT_DEV jtag_uart
**使用lcd作为标准输出时必须注意
Reduced device drivers前面的勾不能去掉,否则LCD无响应
数据类型
“alt_types.h”中
#ifndef ALT_ASM_SRC
typedef signed char alt_8;
typedef unsigned char alt_u8;
typedef signed short alt_16;
typedef unsigned short alt_u16;
typedef signed long alt_32;
typedef unsigned long alt_u32;
typedef long long alt_64;
typedef unsigned long long alt_u64;
#endif
LED控制相关
使用在中的IORD、IOWR
(注意是/altera/80/ip/nios2_ip/altera_nios2/HAL/inc/io.h,不是
/altera/80/quartus/bin/cygwin/usr/include/io.h)
#define IORD(BASE, REGNUM) \
__builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)))
#define IOWR(BASE, REGNUM, DATA) \
__builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA))
altera_avalon_pio_regs.h中的总线读写
#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0)
#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) 实际以巨集IORD与IOWR实现。