收藏 分销(赏)

FPGANios-II-开发实例.docx

上传人:快乐****生活 文档编号:3373389 上传时间:2024-07-03 格式:DOCX 页数:35 大小:10.43MB 下载积分:12 金币
下载 相关 举报
FPGANios-II-开发实例.docx_第1页
第1页 / 共35页
FPGANios-II-开发实例.docx_第2页
第2页 / 共35页


点击查看更多>>
资源描述
5.4 Nios II 开发实例 5.4.1系统软硬件需求分析(见ppt) 根据所用到的外设和器件特性,在Qsys中建立系统要添加的模块如下: (l)Nios Ⅱ 32 bit CPU。 (2)Jtag uart。 (3)on-chip memory。 (4)定时器 timer。 (5)按键PIO。 (6)LCD PIO。 5.4.2 系统硬件设计 1.创建一个Quartus Ⅱ工程 在Quartus Ⅱ软件中,利用创建工程向导新建工程clock,根据所用开发板类型选择相应器件,本例所用的是台湾友晶科技的DE2-115开发板,开发板上的FPGA器件为Cyclonc IV E系列EP4CE115F29C7芯片。在QuartusⅡ中选择该芯片,如图5 .31所示。 File->New 选Project 工作目录:D:/altera_design/my_clock 工程名:my_clock Page 2 of 5 Page 3 of 5 Page 4 of 5 Page 5 of 5 点finish 2.创建NiosⅡ系统模块 (1)启动Qsys ①在Quartus Ⅱ中选择菜单Tools®Qsys命令,或者直接点击上具栏中Qsys的图标弹出如图5.32所示的Qsys界面。 ②点击Clock Setting进行时钟设置,这里设为默认值,即50M,如图5.33所示。 13.1中View->Clock (2)添加CPU和外围器件。从Qsys的元件池中选择以下元件加入到当前设计的系统中: Nios Ⅱ32 bit CPU、jtag uart、片上存储器on-chip memory、定时器、按键PIO、LCD。 ①添加Nios Ⅱ32 bit CPU。 a. 在Embedded Processors模块下,选择Nios ⅡProcessor。 b. 双击或点击Add,会出现Nios Ⅱ的设置向导(名为nios2_qsys_0)。 e.在Nios Ⅱ Core栏中选择Nios Ⅱ /S选项,如图5.34所示。 d.点击Caches and Memory Interfaces标签页,在Instruction Cache中选择4Kbytes,如图5.35所示。 e. 点击JTAG Debug Module标签页,Debug level选择Level 1,如图5.36所示。 f. 点击Finish回到Qsys界面。 g. 将nios2_qsys_0重命名为cpu,如图5.37所示。 选Rename ,输入cpu h. 将cpu的clk和reset_n分别与系统时钟clk_0的clk和clk_reset相连,如图5.38所示。 注意:对模块命名时应遵循以下规则: 名字最前面应该使用英文。 能使用的字符只有英文字母、数字和下划线“_”。 不能连续使用下划线“_”符号,在名字的最后也不能使用下划线“_”。 ②添加JTAG UART接口 JTAG UART是NiosⅡ系统嵌入式处理器新添加的接口元件,通过内嵌在Altera FPGA内部的JTAG电路,可实现在PC主机和Qsys系统之间进行串行字符流通信。 a. 在Qsys左侧的搜索栏中输入JTAG UART; 选择Interface protocols®Serial®JTAG UART并双击,或点击Add按钮,会出现JTAG UATT-jtag_uart_0的设置向导,如图5.39所示。 b. 系统其他选择默认设置,点击JTAG UART设置向导Finish按钮,返回Qsys窗口。 c. 将jtag_uart_0重命名为jtag_uart。 d. 进行clk、reset以及master-slave的连线,如图5 .40所示。 ③添加定时器 定时器对于HAL系统库中器件的驱动非常有用。比如JTAG UART驱动使用定时器来实现10秒钟的暂停。添加定时器执行以下步骤: a. 在Qsys搜索栏中输入timer,选择 Peripherals下Microcontroller peripherals下的interval timer并双击鼠标左键,或点击Add按钮,会出现Avalon Timer-timer_0的设置向导,如图5.41所示。 b.在设置向导的Timeout Period选项中选择1 ms,其他选项保持默认设置。 c.点击Finish按钮,返回Qsys窗口。 e. 将timer_0重命名为system_timer。 f. 进行clk、reset和s1的连线,连线如图5 .42所示。 ④添加片上存储器on-chip memory a. 在Qsys搜索栏中输入On-Chip Memory, 选择Memories and Memory controllers下On-Chip下On-Chip Memory(RAM or ROM)并双击鼠标左键,或点击Add按钮,会出现On-Chip Memory(RAM or ROM)-onchip_memory2_0的设置向导,如图5 .43所示。 b. Memory type选择RAM,Total memory size选择102400(100K)。 c. 点击Finish按钮,返回Qsys窗口。 d.进行clk1、reset1和s1的连线,连线如图5.44所示。 ⑤添加Button PIO a. 在Qsys搜索栏中输入pio, 选择peripherals®Mierocontroller peripherals®pio并双击鼠标左键,或点击Add按钮,会出现PIO(Parallel I/O)-pio_0的设置向导,如图5 .45所示。 b. 确定以下选项:Width为4bits,Direction选择Input。 c. 在Edge captue register 选取Synehronously capture, Edge Type选择FALLING。 d.在Interrupt下选择Generate IRQ,IRQ Type选择EDGE。 e.设置完成,如图5.45所示。点击Finish按钮,返回Qsys窗口。 f. 将pio_0重命名为button_pio。 g. 进行clk、reset和s1的连线,连线如图5.46所示。 ⑥添加LCD a. 在Qsys搜索栏中输入lcd, 选择Peripherals ®Display®Altera Avalon LCD 16207并双击鼠标左键,或点击Add按钮,会出现Altera Avalon LCD 16207-lcd_16207_0的设置向导。 b. 直接点击Finish,返回Qsys窗口。 c. 将Icd_16207_0重命名为lcd。 d. 进行clk、reset和control_slave的连线,连线如图5.47所示。 (3)指定基地址和分配中断号 ①Qsys会给所添加的系统模块分配默认的基地址。 设计者可以更改Qsys分配给系统模块基地址的默认值。 没有分配给系统模块基地址时Address Map标签页中显示 在Qsys中选择菜单System->Auto Assign Base Adderss命令。 Auto Assign Base Address可以使Qsys给其他没有锁定的地址重新分配地址,从而解决地址映射冲突问题。 图5.48所示的Address Map标签页中显示了完整的系统配置及其地址映射。 ②中断号的分配 本实例工程中用到了定时器和按键两个中断,根据系统功能,已知按键中断优先级要高于定时器中断,这里将定时器中断优先级设为6,按键中断优先级设为5。 具体设置方法是:先将定时器中断与cpu中断连接,用鼠标右键点击system-timer,选择connections®System_timer.irq®cpu.d_irq,如图5.49所示; 然后在其后面自动生成的中断号“0”上双击鼠标左键,将其修改为“6”。按键中断的设置与此类似,最终中断分配后如图5.50所示。 考虑Jtag-uart中断 此时尚有2个错误 (4)Nios Ⅱ处理器参数设置 在Qsys的System Contents标签页中,在添加的Nios Ⅱ处理器上双击鼠标左键,弹出如图5.51所示的Nios Ⅱ Processor对话框, 在该界面中设置Reset Vector和Exception vector。 由于本例中Nios Ⅱ的程序存储器和程序执行区均为片上RAM,因此这里Reset Vector和Exception Vector均选择片上存储器onchip_memory2_0.s1。(错误消失了) 实际工程中可以根据需要将Reset Vector指定为系统中添加的Flash控制器,将Exception Vector指定为系统中添加的SDRAM控制器。 点击Finish按钮返回到Qsys界面,可以看到所有Qsys系统错误都消失了。 (5)生成系统模块 ①在Qsys界面中选择Generation标签页,如图5 .52所示。 应该是:在Generate菜单下选择Generate… ②在Generation标签页中进行系统生成前最后一步的设置,该工程中均使用默认设置。 ③点击左下角Generate按钮。Qsys根据用户设定的选项不同,在生成的过程中执行的操作过程将有所不同。 点save 生成过程 生成完毕 点close ④系统成功产生后,可点击菜单File®Exit命令退出Qsys。 3.在原理图(BDF)文件中添加Qsys生成的系统符号 在Qsys系统成功产生后会生成用户系统模块的元件符号(symbol),可以像添加其他QuartusⅡ的元件符号一样将其添加到当前项目的原理图(B DF)文件中。 在本例中就可将生成的clock系统元件符号添加到BDF文件中。步骤如下: File->New 选Block Diagram/Schematic File,结果如下图所示: (1) 双击BDF文件窗口,出现Symbol对话框,如图5.53所示。 (2)在对话框中点击Project目录。 (3)在project下选择clock,会出现代表所建立的NiosⅡ系统的元件符号。 (4)点击OK,将其放入BDF文件中。 (5)将clock与输入、输出接口相连。 (6)右击该图标,选择Generate Pins for symbol Ports, 然后编译工程。 (7)分配引脚,完成系统的硬件设计,如图5.54所示。 Assignment->Pin Planner 分配引脚如下: 选processing->Start I/O Assignment Analysis 结果有9个错误 删除前4个引脚的分配 再进行processing->Start I/O Assignment Analysis 结果错误消失。 选close退出pin planner。可见引脚都已经分配。 4.编译Quartus Ⅱ的工程设计文件 选择菜单Processing®start Compilation命令对工程设计文件进行完全编译。 最后一步由于没有license而无法完成。 5.配置FPGA(返回教材和ppt) 将QuartusⅡ编译后产生的FPGA配置文件(clock.sof)下载到目标板上。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服