Nios II 学习札记.docx

上传人:b****5 文档编号:2809158 上传时间:2022-11-15 格式:DOCX 页数:21 大小:880.09KB
下载 相关 举报
Nios II 学习札记.docx_第1页
第1页 / 共21页
Nios II 学习札记.docx_第2页
第2页 / 共21页
Nios II 学习札记.docx_第3页
第3页 / 共21页
Nios II 学习札记.docx_第4页
第4页 / 共21页
Nios II 学习札记.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

Nios II 学习札记.docx

《Nios II 学习札记.docx》由会员分享,可在线阅读,更多相关《Nios II 学习札记.docx(21页珍藏版)》请在冰豆网上搜索。

Nios II 学习札记.docx

NiosII学习札记

NiosII学习札记

1学习平台

1.1软件平台

⏹QuartusII:

V4.0Build214,SP1

⏹SOPCBuilder:

V4.01Build214

⏹NiosII:

V1.0.0Build393

1.2硬件平台

NiosDevelopmentBoard,CycloneEdition

EP1C20F400C7

2参考文献:

《NiosIIDevelopmentKitGettingStartedUserGuide》

文档版本:

May2004

三种类型的CPU核:

NiosII/e,NiosII/s,NiosII/f。

根据文档的指示,上电以后没有所述的现象。

不知是不是有地方出现损坏。

根据文档的指示,把standard.sof通过ByteBlasterII下载到Cyclone中,七段数码管出现“8.8.”。

“Loading”、“Error”、“User”和“Safe”指示灯全部熄灭。

根据文档的指示,生成“HelloWorld”C/C++应用程序,将其运行(使用ByteBlasterII电缆下载)。

出现如图1的对话框。

这个对话框,有两个很奇怪的地方:

⏹提示说,所使用的JTAG下载电缆不为NiosII所支持。

奇怪!

⏹按理应该显示“HellofromNiosII!

”,但奇怪的是什么都没有显示!

在“NiosIIterminalcommunicationdevice”选项中,无论是选“JtagUART”,还是“uart1”;或者是以“RunAs..NiosIIhardware”方式运行,都不能显示正确的字符串。

3参考文献:

《NiosDevelopmentBoardReferenceManual,CycloneEdition》

文档版本:

May2004

3.1Flash存储器

8MB=1Mx8,AM29LV065DU-120REI,与SRAM和网卡共享数据和地址总线。

主要有两个作用:

⏹作为通用可读存储器以及不可挥发存储

⏹容纳Cyclone配置数据

实现Nios参考设计的硬件配置数据预先存储在该Flash存储器中。

这个预先装载的Nios参考设计,一旦装载,可以识别该Flash存储器;并包含可以下载文件(新的Cyclone配置数据,或者嵌入式处理器软件,或兼而有之)到Flash存储器的监控软件。

嵌入式处理器软件包含对特定AMDFlash存储器的写和擦除的子程序。

3.2同步动态存储器(SDRAM)

16MB=4Mx32,MT48LC4M32B2,具备PC100和自刷新功能。

SDRAM控制器外设包含在Nios开发板中,使得处理器可将SDRAM器件当作一个大容量的、可线性寻址的存储器设备。

3.3异步静态存储器(SRAM)

1MB=2x256Kx16,IDT71V416S10PH,被Nios当作通用存储器。

可实现32位宽的存储器子系统。

预装载的Nios参考设计将这些存储器当作连续的1MB、32位宽、零等待主存储器。

3.4UART串口

⏹标识为“Console”,包括UART的所有的信号(DB-9)

⏹标识为“Debug”,仅包含TXD、RXD和GND信号

3.6串行配置器件(EPCS4)

串行的配置器件是一种Flash存储器,具备串行接口,为Cyclone器件存储配置数据。

当上电或需重新配置时重新装载配置数据。

SOPCBuilder包含串行存储器接口部件,允许处理器来访问串行配置存储器。

3.7配置控制器(EPM7128AE)

3.7.1复位电路

从上电复位芯片LT1326获取上电复位信号,并通过内部逻辑分配给其他的板上外设:

网卡、Flash存储器以及连接插座。

3.7.2开始配置

有四种方式来开始对Cyclone器件进行配置:

⏹上电

⏹按下“复位按钮(SW10)”-复位芯片的手动复位

⏹Cyclone将reconfigreq_n驱动为低

⏹按下“ForceSafe”按钮(SW9)

4生成nios_small处理器以及软件编程、调试

4.1建立工程

【1】在d:

\NiosII\Design目录下,建立子目录nios_small。

【2】在Quartus中选择菜单“File->NewProjectWizard...”,设置工程路径为d:

\NiosII\Design\nios_small,设置工程名为nios_small,设置顶层模块名为nios_small。

【3】暂时不加入任何文件。

【4】对EDA工具不作任何的设置。

【5】选择实现器件为Cyclone系列,并将要指定具体型号。

【6】选择器件封装为FBGA-400,速度等级为7,具体信号为EP1C20F400C7。

【7】工程设置情况概览。

【8】按照下表进行管脚定义。

管脚

K5

C4

E14

E13

C14

D14

E12

F12

B3

B14

信号

clk

rst_n

led[0]

led[1]

led[2]

led[3]

led[4]

led[5]

led[6]

led[7]

注意:

所有未使用的管脚必须设置成“三态输入”,如下所示。

4.2使用SOPCBuilder生成nios_small处理器

【1】在Quartus中选择菜单“Tools->SOPCBuilder...”,打开SOPCBuilder。

将系统名设置为“nios_small”,HDL语言选择“Verilog”。

【2】将目标板设置为“UnspecifiedBoard”,器件为Cyclone系列,系统时钟频率为50MHz。

【3】双击左侧“AvalonModules->NiosIIProcessor–AlteraCoporation”,出现如下的对话框。

选择CPU类型为NiosII/e(经济型),可以看到该CPU为32位的RISC的CPU,速度可达6DMIPS,需要600~700个LE,存储器需要2个M4K。

在上面的对话框中选择“JTAGDebugModule”,或直接按“Next”。

出现下面的对话框。

选择“Level1”调试功能,具备“JTAG目标连接”、“软件下载”和“软件断点”的调试功能。

若选择“NoDebugger”,将不能下载和调试软件。

在上面的对话框中选择“CustomInstructions”,或直接按“Next”。

由于没有任何的客户定制指令需要添加,不作任何更改。

最后选择“Finish”,结束对NiosCPU的设置。

并将“cpu_0”改名为“cpu”。

【4】双击左侧“AvalonModules->Memory->On-ChipMemory(RAMorROM)”,出现如下的对话框。

存储器类型选择“RAM(writeable)”,32位位宽,2K字节。

注意在上面的对话框中说到,存储器将用onchip_memory_0.hex进行初始化。

实际上该hex文件存储的就是运行于nios_small的软件执行代码。

最后选择“Finish”,并将“onchip_memory_0”改名为“onchip_memory”。

【5】双击左侧“AvalonModules->Other->PIO(ParellelI/O)”,出现如下的对话框。

8位位宽,仅作为输出端口。

最后选择“Finish”,并将“pio_0”改名为“led_pio”。

结束完上述设置以后,选择菜单“System->Auto-AssignBaseAddresses”自动分配基地址;再选择菜单“System->Auto-AssignIRQs”自动分配中断号。

最后,右侧将出现如下的设置概览。

再选择“More“cpu”Settings”,出现下面的对话框。

从中可以看到CPU复位以后,将从onchip_memory的地址为0x00000800处执行软件代码。

另外还可以看出异常向量位于onchip_memory的地址为0x00000820处。

选择“SystemGeneration”,最后点击按钮“Generate”生成nios_small处理器。

注意:

生成的CPU代码为加密的Verilog代码,不能列出其内容。

当看到下面的对话框时,就表明你已经接近成功了。

4.2生成的nios_smallCPU在Quartus中的使用

【1】SOPCBuilder将自动生成nios_small.bsf,如下图所示。

若在上面的CPU的生成设置中选择的是“NoDebugger”,上图将变成下面的样子。

差别在于信号管脚“E_en_to_the_cpu”,没有看到文档中提到该信号,但从信号名可以猜测该信号的功能为CPU的使能的信号。

实际连接时,可以固定接高,一直使能。

实际上,SOPCBuilder不但生成了原理图的文件,也生成基于Verilog或VHDL的源代码文件(如nios_small.v)。

设计人员可以根据自己的喜好,选择原理图的方式,还是Verilog的方式,或是VHDL的方式,都是可以的。

作者偏爱Verilog这种方式,这仅仅是跟人喜好的问题。

【2】生成顶层设计文件nios_small_top.v,其文件内容如下:

modulenios_small_top(

inputclk,

inputrst_n,

outputreg[7:

0]led

);

nios_smallh_nios_small(

.clk(clk),//系统时钟

.reset_n(rst_n),//系统复位

.E_en_to_the_cpu_0(1'b1),//使能

.out_port_from_the_pio_0(led)//LED端口

);

endmodule

4.3在NiosIIIDE中生成软件代码

【1】在SOPCBuilder的最后的对话框中按下“RunNiosIIIDE”,将进入NiosIIIDE。

【2】选择菜单“File->New->C/C++Application”,将出现下面的对话框。

请参照该对话框内容进行设置。

注意上图右下角中“Details”的描述:

ThisisasimplefreestandingapplicationthatwillrunonanyNiosIIsystemwithanLEDPIOnamed'led_pio'suchasthestandardorfull-featuredhardwareexampledesigns.Itdoesnotusemain()asit'sentrypoint.Instead,itusesalt_main(),analternativeentrypointwhichbypassesallinitialization,atechniquethatcanreduceoverallcodesize.Bewarnedhowever.IfyoumodifythisexampleandtrytocallClibraryfunctionssuchasprintf,t

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1