【推荐图书】+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等

3赞

发表于 2016/7/4 21:14:12 阅读(1921) 评论(3)

初次接触FPGA,到现在也有四年多了,当时读大二,暑假在学校准备光电设计竞赛,指导老师让用单片机做,前期向我们推荐FPGA,希望我们有时间去学学FPGA,记得当时买了块黑金核心板,下载了特权同学的《深入浅出玩转FPGA》视频教程,买了特权同学写的《深入浅出玩转FPGA》和夏宇闻老师编写的《Verilog数字系统设计教程》。那时把大部分时间都花在了单片机上,对于FPGA,只是做了几个基本的实验,像计数器,二分频等。步入大三,专业课比较多,当时也是比较懒,身边也没有人做FPGA,始终还是没有坚持下来,下学期出去实现了3个月,大四,步入考研大军……

14年秋季上研究生,研究方向是FPGA图像处理,这时才算是真正开始做FPGA,这期间做了一些工程项目,也读了不少书,掌握了FPGA硬件电路设计、Verilog程序编写(包括一些图像处理算法的硬件实现)、简单的上位机控制界面的制作(使用C#)。这时才觉得,做工程,最重要的莫过于坚持下去。

以下几本书,我觉得写的比较好,跟大家推荐推荐(大牛勿喷),书单如下:

1. 深入浅出玩转FPGA

  • ISBN:9787512411616

2012年买了一本,后来本科毕业时弄丢了,前段时间又买了一本,毕竟,大神写的书嘛。书中讲了FPGA的基本概念、Verilog语法、重要的设计思想、时序约束以及一些简单的项目应用。

我一直认为FPGA设计思想非常重要,我在做图像处理时,经常使用乒乓操作,比如我之前写直方图均衡算法时,就是开辟两块存储区域A、B,区域A统计时区域B映射,区域A清零时区域B累加,占用的存储空间也不多(对于24bit RGB图像,分辨率为640×480时,占用256*19=4864bit),并且算法执行效率高。

时序约束的重要性就不用多说了,之前听别人说过一个工程项目,同一个程序,每次编译后现象都不太一样(体现在图像噪声上),估计是时序约束的问题,我现在在时序约束方面算是小白,只会对工程做一些简单的时钟约束,在编写算法时,我也只是尽量减小判断语句嵌套。

书中包括了一些项目应用,通过这些应用,相信有开发板的初学者应该能掌握PLL的配置、FIFO的使用、移位寄存器的使用、双口RAM的使用包括片外存储器SDRAM及Flash的使用,这些算是FPGA开发的基本功吧,进行快速操作时,一般使用片上RAM完成;跨时钟域处理时,一般使用双口RAM或者异步fifo;中值滤波时,要用到移位寄存器生成3×3或者5×5矩阵;VGA输出图像时,要用到外部存储器缓存图像;Flash可用来存储配置程序。把这些掌握了,基本上就可以着手做工程咯。

2. 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例

在做FPGA实时图像处理时,有时需要计算一些参数,比如Gamma值、校正矩阵等,这些参数在逻辑中计算会非常复杂,并且由于这些参数不需要一直计算,因此完全没有必要在逻辑中实现。

32位的NIOS II系列软核处理器是Altera公司研制的第二代嵌入式处理器,它具有很高的性能、方便的软件开发工具和很大的灵活性,并且占用很小的FPGA资源,它可以与各种各样的外设、定制的硬件加速单元组合,构成一个定制的片上可编程系统。如果使用Nios II,那么事情就将会变得非常简单。逻辑正常处理数据的同时,Nios II通过访问存储器,读取图像进行分析,使用Nios可以像C语言编程一样进行操作,得到参数值,再通过寄存器映射的方式映射到逻辑中的某些寄存器。

这本书有点贵,80多块钱,隔壁实验室有个同学买了本,之前我借着看过一段时间,书写的很nice,对Nios讲的还不错,并且还有一些例程,学习sopc系统设计的朋友可以参考。

3. 数字图像处理

  • ISBN:9787121110085

做图像处理的人,我想应该都接触过这本书吧,书中主题很多,从理论到实践,讲的很透彻,这是我在图像处理方面见过的最好的书,没有之一。我学的时候大部分时候是要用到哪个知识点,才去看相关部分。

我现在写过的一些图像处理算法(中值滤波、直方图均衡、高斯滤波、双边滤波、线性变换)也基本上都是基于此书,比如空间域图像增强、频率域图像增强、彩色图像处理、图像检测等。图像增强对视觉冲击比较大,使用中值滤波可降低随机噪声,频率滤波可用来降低图像中的周期噪声,后面有空再学学图像存储、分割、配准、合成。

4. 数字图像处理matlab版

  • ISBN:9787121201974

这本书讲的主要是相关图像处理算法的matlab实现,图像图像处理偏向于理论解释,而这本书主要讲工程实现。本书同样适用于matlab初学者,即使之前没有学过matlab,直接上手这本书也没有关系,书中第一章讲了matlab的使用,全书循序渐进,由浅入深,对图像处理工程师来说,这两本书不容错过。

5. C#入门经典

  • ISBN:9787302343394

学C#,主要是工程需要,当时写了一个串口控制界面的上位机程序,上位机通过uart与FPGA通信,实现对硬件系统的控制。

当时也是主要看了看一些基本的语法和windows窗体编程,不得不说,界面编程真方便,所见即所得,将一些控制摆上去,再编写一些响应函数即可。闲暇之余写了个界面,有时验证一些算法适用性时,使用下面的小软件将会显得非常方便。

这本书讲的大都是些基础性的知识,如果有时间和精力,可以学学《C#高级编程》,这本书我也没读过,所以就不多说咯。

6. 于博士cadence视频教程

前面推荐的都是纸质教程,最后推荐一份电子教程,总共60集。需要的直接百度哈。我当时画PCB也是看的这个教程,讲的很不错,比较详细,基本上看完就可以设计FPGA处理板了。

在电子设计领域,要走的路还很长,后期准备深入学习Nios、图像处理算法的硬件化实现、基于C#的软件开发,有空了了解了解FPGA异构计算。

转载:http://blog.chinaaet.com/helimin/p/5100017680

【推荐图书】+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等的更多相关文章

  1. FPGA回忆记事(一):基于Nios II的LED实验

    实验一:基于Nios II的LED实验 一.    创建Quartus II工程 1.打开Quartus II环境.开始->程序->Altera->Quartus II 9.1. 2 ...

  2. 基于NIOS II的双端口CAN通信回环测试

    基于NIOS II的双端口CAN通信回环测试 小梅哥编写,未经授权,严禁用于任何商业用途 说明:本稿件为初稿,如果大家在使用的过程中有什么疑问或者补充,或者需要本文中所述工程源文件,欢迎以邮件形式发送 ...

  3. 推荐一个基于Vue2.0的的一款移动端开发的UI框架,特别好用。。。

    一丶YDUI 一只注重审美,且性能高效的移动端&微信UI. 下面为地址自己研究去吧! 我的项目正在用,以前用的Mint-ui但是现在感觉还是这个好一点,官方给出的解释很清楚,很实用. 官方地址 ...

  4. [置顶] 基于FPGA的VGA简易显存设计&NIOS ii软核接入

    项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...

  5. 【小梅哥SOPC学习笔记】sof与NIOS II的elf固件合并jic得到文件

    sof与NIOS II的elf固件合并jic得到文件 注意,本方法已经有更加简便的方法,小梅哥提供相应的脚本文件,可以一键生成所需文件,脚本请前往芯航线FPGA技术支持群获取. 7.1 为什么需要将S ...

  6. 【小梅哥SOPC学习笔记】切换NIOS II CPU的主内存后软件中需要注意的几点设置

    切换NIOS II CPU的主内存后软件中需要注意的几点设置 有时候,我们可能面对这样一种情况: 1. 我们创建一个SOPC系统,并在QSYS中设置NIOS II的复位地址和异常地址都指向SRAM: ...

  7. 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II

    SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...

  8. (原創) 如何在Nios II顯示8位數的七段顯示器? (SOC) (Nios II) (SOPC Builder) (DE2-70)

    Abstract本文討論如何在Nios II控制8位數的七段顯示器. Introduction使用環境:Quartus II 8.0 + Nios II EDS 8.0 + DE2-70 (Cyclo ...

  9. 【小梅哥SOPC学习笔记】NIOS II工程目录改变时project无法编译问题

    解决NIOS II工程移动在磁盘上位置后project无法编译问题 说明:本文档于2017年3月4日由小梅哥更新部分内容,主要是增加了讲解以Quartus II13.0为代表的经典版本和以15.1为代 ...

随机推荐

  1. springboot2 redis

    本项目使用jar包: <parent> <groupId>org.springframework.boot</groupId> <artifactId> ...

  2. python与mysql交互中的各种坑

    开始学python 交互MySQLdb,踩了很多坑 第一个 %d format: a number is required, not str 参照以下博客: https://blog.csdn.net ...

  3. UVA 509 RAID!

    思路来自:https://blog.csdn.net/wcr1996/article/details/43834545 先解释一下题意: ①输入:先输入d(disk的数量)  s(每块数据块有s个bi ...

  4. 前端之html、css

    一.什么是前端 前端即网站前台部分,运行在PC端.移动端等浏览器上展现给用户浏览的网页.前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括基 ...

  5. RESTful restful api Representational State Transfer

    通俗直白讲:REST是一种编写风格,一种API接口规范.它的风格就是将对象(如学生)的状态(如增删改查,API接口版本号等等)通过其他方式传递,API的接口地址突显出描述的对象. -- == REST ...

  6. [转]REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR

    午睡一觉醒来,突然想伪造IP地址.搜了一下,Mark. 源地址:http://www.cnblogs.com/lmule/archive/2010/10/15/1852020.html ------- ...

  7. svn window下过滤文件(如配置文件等)

    第一种: 在资源管理器中,右键一个未加入版本控制文件或目录,并从弹出菜单选择TortoiseSVN →Add to Ignore List,会出现一个子菜单,允许你仅选择该文件或者所有具有相同后缀的文 ...

  8. JS 引用类型之Object

    引用类型定义: 描述一类对象具有的属性和方法 引用类型Object ,也就是我们常说的对象类型了,这应该是JavaScript中最常见的引用类型了. 对象是某个引用类型的实例,如何创建一个实例,也就是 ...

  9. 设置字体格式,加粗,regular,light

    设置文字大小和字体的途径有两个: 第一种,直接使用xib设置   ,   ,  第二种,使用代码 Label.font = [UIFont fontWithName:.f];//加粗 Label.fo ...

  10. 重写父类、多线程、多进程、logging模块

    1. 重写父类 1)  子类定义父类同名函数后,父类函数被覆盖: 2)  如果需要,可以在子类中调用父类方法:”父类名.方法(self)”.”父类名().方法()”.”super(子类名,self). ...