【推荐图书】+ 基于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. 用户不在sudoers文件中,此事将被报告

    在给Virtual Box搭配共享文件夹后,普通用户使用sudo时,报错XX不在sudoers文件中.此事将被报告 然后我就按照网上教程,不巧的是正好用错误的教程修改了sudoers文件,造成root ...

  2. XamarinEssentials教程首选项Preferences判断项目是否存在

    XamarinEssentials教程首选项Preferences判断项目是否存在 首选项也可以称为偏好设置.它以键值对的形式保存数据,适用于用户少量数据的存储.例如,将用户的个性化设置保存后,每次打 ...

  3. 【Excel】SUMIF 或用 筛选器 实现挑选含有某些字段的值,然后把这些值所对应的后面某列上的值相加

    Background: 挑选含有某些字段的值,然后把这些值所对应的后面某列上的值相加.比如挑选下表中,所有带有“MX104”这个字段的值,然后把它的后面total那一列的值相加. Solution: ...

  4. 一道颇有难度的JavaScript题

    上次分享了一道题,大家反响不错,很开心自己写的东西有人愿意花时间去看,也给了自己莫大的鼓舞,其实做题虽然不比真正的编程,但是也能够让你发现一些你之前没有注意到的语言层面的问题.所以,这次再分享一道稍微 ...

  5. 安装淘宝镜像cnpm时出现问题及解决方案

    问题: 解决方案: 安装完成:

  6. LOJ.6074.[2017山东一轮集训Day6]子序列(DP 矩阵乘法)

    题目链接 参考yww的题解.本来不想写来但是他有一些笔误...而且有些地方不太一样就写篇好了. 不知不觉怎么写了这么多... 另外还是有莫队做法的...(虽然可能卡不过) \(60\)分的\(O(n^ ...

  7. 潭州课堂25班:Ph201805201 django 项目 第三十一课 在线课堂视频点播的实现(课堂笔记)

    在线课堂 一.数据库模型设计 # 在apps/course/models.py中定义如下模型: from django.db import models from utils.models impor ...

  8. ZOJ3951 : Independent Set

    如果知道了树的形态,那么可以树形DP,每个时刻只需要计算必选根的独立集个数以及必不选根的独立集个数. 那么现在知道独立集个数,要构造出树,可以考虑DP这棵树的形态,然后将之前树形DP的值作为现在DP的 ...

  9. sweetalert的使用

    1.swal()方法中的参数: 2.引入css与js,通过cdn加速服务 <link href="https://cdnjs.cloudflare.com/ajax/libs/swee ...

  10. Python内置模块的几点笔记

    1.shutil模块 import shutil shutil.make_archive('shutil_archive_test', 'zip', 'D:\pyworkspace\.idea') m ...