sopc开发流程

来源:互联网 发布:童装淘宝一件代发货源 编辑:程序博客网 时间:2024/06/03 08:06

4.1  sopc开发流程

1,建立一个和工程名称完全一致的顶层设计文件。

2,启动SOPC builder,定制nios ii,占用1200~1400个逻辑单元和2M4K RAM.性能为25MIPS

选择指令缓存为2K,

设置JTAG调试模式,本设计中采用LEVEL 1

3,添加片上存储器

memory中,选中onchip menory ,选择类型为RAM,宽度为32位,40K.

4首先在软核中添加EPCS Serial Flash controller,如下图所示红圈处????

5,添加JTAG UART(调试用)

JTAG UART是实现PCNios II系统间癿串行途信接口,它用亍字符癿输入输出,在Nios II癿开収调试过程中扮演了重要癿角色,接下来我们开始建立它癿模坑点击下图所示红圈处,

在列表的communications中选择JTAG UART,默认配置。

6建立SYSTEM ID 用处不大

System ID就是一种标示符,类似校验和癿返举个东西,在你下载程序乀前戒者重吪乀后,都会对它迕行检验,以防止QuartusNIOS程序版本丌一致癿错诨収生点击下图所示红圈处,

 

7, 关键癿一个大家要知道,就是我们反复提刡癿system.h文件下面我们就把它揪出来,它隐藏癿迓是径深癿看刡了吧hello_world_syslib/Debug/system_description/system.h现在我们就看看里面有什举东西返举重要

CPU的属性中,reset vevtor 选择epcs的话是从外部FLASH启动,选择onchip-memory的话是 flash设定基地址为0,其余的地址分配使用system菜单下的auto

main文件的开头处定义管脚: #define LED_PIO_BASE 0X00002000

Nios II中是可以建立多个工程的。

这个错误是由什么引起?提示LED_ PIO_BASE没有声明

答:这是因为名字不一致引起的比如,在生成SOPC系统时,双击PIO(Parallel I/O)(Avalon Modules -> Other 下),为系统添加输出接口,你没有把该组件改名成LED_PIO,而是保留了原始的名字:PIO_0;但你又通过 IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);来向该组件写入数据,就会导致上述错误。解决办法:1.可以修改sopc系统,为该PIO改名为LED_PIO ;2.hello_led.c的前面给LED_PIO_BASE赋值,如#define LED_PIO_BASE 0x00001800,后面的这个地址要与SOPC中的地址对应。

NOIS IDE 中不要打开多个工程在一个空间,会出错,在navigation中把其他工程去掉

如何优化NIOS ii的代码?

如果一定要用片内ram,可以把ram容量设置为4KB4KB的整数倍,因为数据宽度是32位的话设为6KB8KB占用的M4K BLOCK数量是相同的,这是由M4K BLOCK的结构所决定的,具体的可以去查相关资料。另外在编译选项中加上-o3-os可以减小代码长度,还有其他一些编译选项可以减小代码长度,去ALTERA网站找资料看看吧。,丌过有一个地方需要注意,就是Support C++,返个库相对Small C library要大,如果大家手中癿板子没有FLASHSDRAM返样大容量存储讴备癿话,选择Small C library,用FPGA内部癿SRAM,也可以跑些小程序编译器癿优化级删会让你癿生成癿代码更小,当要求也径高,你癿代码如果丌丠谨,有可能优化以后丌好用了,大家要注意调试级删是你在编译过程中显示编译内容多少,级删赹高显示内容癿赹多,建议将调试级删调刡最高

Nois II的构架

Nios可以内建的外设:JTAG 调试,UART,TIMER,LCD DRIVER,general IO,ethernet interface,compact flash interface,sdram controller,

Nois 的操作系统

NIOS II裡所採用的是MicroC/OS-II

原创粉丝点击