DE2_115(DAY2)用niosii和switch还有NiosII console去控制板子上的led

DE2_115(DAY2)用niosii和switch还有NiosII console去控制板子上的led

承接DAY1做的事情(https://ithelp.ithome.com.tw/articles/10283378),这次我想将板子上的switch作为输入
去控制板子上的led,还有使用niosII console 去输入值来操控led显示。

#实验构想:
实验一(板子上的switch作为输入来控制led)
step1:用qsys拉好niosii和板子上pl的连结
step2:在eclipse中将switch的address的值assgin给led的address的值
step3:烧上板子以後开关switch就会让在其上的led也跟着开关

实验二(使用niosII console输入值来控制led的明暗)
step1:sopcinfo同实验一,只有.c档的code要改
step2:烧上板子以後再在console中输入值led的灯就会随着改变了

实作(实验一):
第一步:
qsys的拉法跟day1很像,但是多了一个pio是要设为input,是用来给switch当作输入
https://ithelp.ithome.com.tw/upload/images/20220203/20145199GrGrtrPNsp.png
这边提醒一下,onchip memory不能用预设的4096bytes,在quartus这边生成sopcinfo档案时不会有问题
但是到eclipse那边build project时会提示(什麽overflow的),这边的原因我还没有搞清楚,但是我猜就是memory给太小了,所以我回到qsys那边把onchip_memory size调成409600bytes就可以过了,之後搞懂再回来补解释
https://ithelp.ithome.com.tw/upload/images/20220203/20145199WN6DPtU9zN.png
第二步:
1.在qurtus中要呼叫出刚拉好的qsys档案和.v档,并新增一个.v档叫做lights.v,其内容如下图,只是把要用的port宣告进来,还有Instantiate the Nios II system module generated by the Platform Designer tool
https://ithelp.ithome.com.tw/upload/images/20220203/20145199OtYKS22oHG.png
2.这样即可以去做analysis&synthesis
第三步:
1.要做pin assignment,这次我就是直接在qsf那边输入我要用的脚位,储存以後就会直接在pin planner那边进行更动了,图中的altera_reserved 那四个pin角是给jtag使用的,不需要自己再去assign脚位
https://ithelp.ithome.com.tw/upload/images/20220203/201451992rlXEEOKN1.png
https://ithelp.ithome.com.tw/upload/images/20220203/2014519988fEX2wQPj.png
2.做完了以後就可以compile design,如果过了的话就可以在上方工具栏中开启tools=>
nios software buils tools for eclipse了
第四步:
1.开启之後会是空的,在右上角选择file=>new=>niosii application and bsp from template选择在quartus中生成的sopc(system-on-a-programmable-chip)info file,然後在system.h档案中找到LEDS_BASE的address是0x81000,SWITCHES_BASE的address是0x81010,然後改.c档的内容如下图烧录以後就可以看到led会随着switch的开关而明暗
https://ithelp.ithome.com.tw/upload/images/20220203/20145199tJkS6PxOGP.png

实作(实验二):
第一步:将.c档里面的code改成下图
https://ithelp.ithome.com.tw/upload/images/20220203/20145199x9858o1Mik.png
第二步:在niosII console中输入0-127的值led就会随着输入的值进行变化
https://ithelp.ithome.com.tw/upload/images/20220203/20145199Z3N0a13kdb.png

实验影片连结:
实验一:https://youtu.be/CECFKGfduHE
实验二:https://youtube.com/watch?v=x4F6k7sC8Mc&feature=share

参考资料:
https://ftp.intel.com/Public/Pub/fpgaup/pub/Teaching_Materials/current/Tutorials/Introduction_to_the_Qsys_Tool.pdf
https://www.cnblogs.com/oomusou/archive/2008/10/02/nios2_console_ledg.html


<<:  虎你快乐啦!自己的新年图自己做 (React+Fabric.js) -上

>>:  1. 好网站的构成&响应式网站

Day 26 初学者补给站 学习方向讨论

大家好~~欢迎来到第二十六篇 聊聊学习方向讨论 本篇呢 会跟大家分享,平时本人会怎麽训练自己的程序。...

Day#20 Dependencies & conversation UI

前言 今天来加入更多的Dependencies,以及聊天开发的准备 Cocoapods 那麽我们先来...

[Day 30] 模仿 Node 的非同步实验兼完赛心得

实作 所谓读了原始码却不实作与验证, 那不过就是对原始码的意淫而已, 所以在这个系列文的结尾总是还要...

缓冲区溢出和记忆体泄漏(Buffer Overflow and Memory Leak)

-进程的记忆体布局 **缓冲区(Buffer)**是指用於存储特定大小数据的一段内存。如果数据大小...

自动化 End-End 测试 Nightwatch.js 之踩雷笔记:等待物件II

前篇提到可以利用 waitForElementVisible() 去等待一个物件的 display ...