通过fpga这门课,实际上可以掌握好多的知识点。首先是数字电路,可以参考国外的verilog与数字逻辑基础(前提是懂一点c语言),再是专注下verilog,可以看夏宇闻的verilog数字系统设计教程,最后建议最好买一个开发板,这样可以获得很多相关开发的资料和很多有用的软件,不过如果你懂单片机的话,入手还是蛮快的,深入下去其实才是最难得。这样软件操作和做些试验后基本可以算入门了。接着就是看自己如何选择向哪一方面精了,可以ic的可以嵌入式sopc的,觉得你还是看看夏宇闻的那本高级实验教程。
当然还有很多讲vhdl语言的,总的来说verilog是发展趋势,标准也在不断的更新,生命力应该更强点。最后提醒下,学习的时候其实比较好的就两家公司的,你可以自己需要选择下,学好了一个在学另一个还是不难的。
总的来说,fpga要求的知识很多的,尤其是你的数字电路,语言编程,到后面还有本身硬件知识的局限,硬件系统包括外围电路等等诸多的知识,不可急于求成,慢慢积累学好基础知识对于学习fpga很有帮助的
1
接下来学SOPC技术(片上可编程系统):是在FPGA芯片里面移植一个nios软核,然后用c语言编程,进行软件开发。把这个也学了之后就可以学习ucos或者uclinux操作系统,还有ucgui是图形界面,可以显示桌面了。
2
如果继续学习硬件的话就学fpga设计高级教程。
3
想学dsp的话。fpga可以用硬件实现传统dsp的功能,而且速度快得多,那么你可以学dspbuilder
个人觉得学习FPGA,这个视频挺不错的,讲的挺多基础性的东西,网页链接
FPGA作为一种高新技术,由于其结构的特殊性,可以重复编程,开发周期较短,越来越受到电子爱好者的青睐,其应用已经逐渐普及到了各行各业。
摘 要VGA是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点。采用FPGA产生VGA时序信号和彩条图像信号,并在Xilinx公司的ISE软件环境下完成VGA时序彩条信号模块的仿真,最后下载到Spartan3E开发板上进行硬件验证,并在LCD显示器上显示出彩条图像。
关键词FPGA;时序信号;VGA
在许多图像处理系统中,需要将处理的图像显示出来,如果采用传统的办法将图像传回电脑并通过显示器显示出来,那么在传输的过程中就需要嵌入式系统的CPU不断的对所传输的图像数据信号进行控制,这样就造成了CPU资源的浪费,同样系统还需要依赖电脑,降低了系统得灵活性。VGA是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。采用FPGA对显示器的VGA接口进行设计,数据流只需要在整个系统得内部流动,而不需要依靠计算机,增强了系统的可靠性和设计的灵活性。
一、VGA显示接口原理
下面以的VGA接口为例来介绍一下VGA显示的基本原理。计算机显示器的显示有许多标准,常见的有VGA,SVGA等。VGA是Video Graphics Adapter(Array)的缩写,信号类型为模拟类型,显示卡端的接口为15针母插座,接口如下图所示。该端口通过标准的监视电缆直接连接到PC监视器或平板LCD上。
其中,VGA_HSYNC和VGA_VSYNC分别是水平扫描信号和竖直扫描信号。VGA_RED,VGA_GREEN,VGA_BLUE是颜色控制信号线,控制当前显示的像素色彩。
FPGA通过串联电阻直接驱动5个VGA信号。每个颜色信号串一个电阻,每位的颜色信号分别是VGA_RED,VGA_GREEN,VGA_BLUE。每个电阻与终端的75欧电缆电阻相结合,确保颜色信号保持在VGA规定的0V~07V之间。VGA_HSYNC和VGA_VSYNC信号使用LVTTL或LVCMOS3I/O标准驱动电平。通过VGA_RED,VGA_GREEN,VGA_BLUE置高或低来产生8种颜色。实际应用中,VGA_RED,VGA_GREEN和VGA_BLUE可以接到DAC的输出,每个DAC用8 bit或更多的比特控制,3条色彩控制线根据DAC输出的电压大小配合实现更多种颜色的显示。VGA显示的原理是利用水平扫描信号和竖直信号实现二维平面的像素扫描显示,以640×480像素的扫描显示示意图为例,当水平扫描信号VGA_HSYNC信号为高时,VGA显示器从左向右依次扫描当前行的640个像素点。每扫描完一行,VGA_HSYNC信号电平拉低,水平扫描位置回到最左端。同理,在竖直扫描信号VGA_VSYSNC信号的控制下,实现扫描行数的循环变化。
二、显示原理与VGA时序实现
VGA显示器总是从屏幕的左上角开始扫描,先水平扫描完一行(800个像素)到最右边,然后再回到最左边(期间LCD对电子束作行消隐)。然后换下一行,继续扫描,知道扫描到屏幕的右下角(600行)扫描结束,这样就扫描完一帧图像。为了保证图像的连续性,VGA显示器再从屏幕的左上角进行扫描。(1)VGA时序分析。通过对VGA显示卡基本工作原理的分析可知,要实现VGA显示就要解决数据来源、数据存储、时序实现等问题,其中关键还是如何实现VGA时序。行时序和帧时序都需要产生同步脉冲(Sync a)、显示后沿(Back porch b)、显示时序段(Display interval c)和显示前沿(Front porch d)四个部分。几种常用模式的时序参数如下表所示。
(2)VGA时序。以800×600×50Hz为例,信息如上表所示:HSYNC Signal用来控制“列填充”,而一个HSYNC Signal可以分为4个段,也就是a(同步段),b(后肩段),c(激活段),d(前肩段)。HSYNC Signal的a是拉低的128个列像素,b是拉高的88个列像素,至于c是拉高的800个列像素,而最后的d是拉高的40个像素。一列总共有1056列像素。VSYNC Signal是用来控制“行扫描”。而一个VSYNC Signal同样可以分为4个段,也是o(同步段),p((后肩段),q(激活段),r(前肩段)。VSYNC Signal的o是拉低的4个行像素,p是拉高的23个行像素,至于q是拉高的600个行像素,而最后的r是拉高的1个行像素。一行总共有628个行像素。“一个行像素”是以“列像素”为单位来定义(以800×600×50Hz为例)如下所示:一个行像素=1056个列像素,而“一个列像素”是以“时间位单位”来定义(以800×600×50Hz为例):一个列像素=25ns,一个行像素=1056个列像素=1056×25ns=264us,(以800×600×50Hz为例),要完成一行的扫描,需要1056个列像素,也就是说需要1056×25ns的时间。如果要完成所有行的扫描的话,需要628×1056×25ns。但是,不是所有的时间都是用来显示,有一部分的时间是用来同步操作。而HSYNC Signal只有在c段和VSYNC Signal的q段的激活段,数据的输入才有效。(3)VGA彩条信号的产生。彩条信号产生模块包括了彩条模块控制、竖彩条发生、横彩条发生和棋盘格发生三个模块。彩条模式控制可以用一个控制端口来实现。竖彩条发生模块根据行点数器H_Sync的计数值来产生彩条,横彩条发生模块根据列点数器V_Sync的计数值来产生彩条,棋盘格的彩条就可以用横彩条和竖彩条的异或来得到。(4)VGA接口电路的实现。程序将50MHZ分频为25MHZ基准时钟产生水平扫描计数,再用水平扫描计数的进位作为竖直扫描计数器的时钟信号。水平扫描和竖直扫描信号不断地循环反复,从而实现整个屏幕的扫描。在根据显示内容的需要,在水平扫描和竖直扫描的特定状态显示特定的内容,就可以实现任意内容的VGA显示。由于文章篇幅的原因,现只将产生水平扫描信号和竖直扫描信号的程序描述如下:process(clk,rst);begin;if(rst=’1’)then;H_Sync<=’0’;V_Sync<=’0’;elsif(rising_edge(clk)then;if(Cnt_H<=95)then;H_Sync<=’0’;else;H_Sync<=’1’;end if;if(Cnt_V<=1)then;V_Sync<=’0’;else;V_Sync<=’1’;end if;end if;end process。
三、小结
(1)由于VGA显示是一个高速过程,所以选择器件时要选择高速器件。(2)VGA显示时序要求较严格,时序中的前后沿及同步脉冲宽度都要依照严格的参考数据设置。(3)在一般情况下,由于数据接口的限制,数据更新率不能达到计算机的水平。通过一些特殊设计,还是能够满足大多数嵌入式VGA的需求。
参 考 文 献
[1]KleitzW[美].VHDL数字电子学[M].北京:北京希望电子出版社,2008
[2]田耘.VHDL开发精解与实例剖析[M].北京:电子工业出版社,2009
[3]沈涛.Xilinx FPGA/CPLD设计初级教程[M].西安:西安电子科技大学出版社,2009
明德扬是他妈只管招人,招进去就不管了。全日制就业班就他妈开学第一节课(10分钟),以后就自生自灭。美其名曰一对一教学,也就是你做练习,不会了问他,他给你讲,还他妈要看他心情,他心情好了给你讲讲,他心情不好直接上去就是怂你一顿没商量。
平时啥都不讲,还他妈总是嫌学生懂得少。
另外,明德扬的客服是只管招人的,每月有招生任务。为了完成任务量,你问啥都给你讲的很完美,进去之后自己慢慢熬。据我所知,明德扬的学员没有正儿八经毕业的,很多学员都是自己学不下去了,就走了。
再说一个搞笑的,有一次一个就业班学员拿着招生时发的课程目录(100来讲的课程)问:潘老师,我们这报得是就业班,你啥都不讲,就让我们自己自学,跟上自习没啥区别。你宣传这么多,到底讲多少。潘老师勾了二十来条。学生不服要理论。潘老师曰:你要是去医院看病,医生说你没病,你就不给钱吗?所有人顿时无言以对。
最重要的基础是《数字电路》这门课。
其次是掌握一种硬件描述语言(VHDL或Verilog)。
另外,FPGA工程师做的事本质上是硬件设计,因此需要具备一定的硬件设计知识。
一个合格的FPGA工程师需要掌握:
1Verilog语言及其于硬件电路之间的关系。
2器件结构(最好熟练掌握Spartan3,Vertix4系列的器件结构,及其资源于Verilog行为描述方法的关系。)。
3开发工具(熟练掌握Synplify,Quartus,ISE,Modelsim)。
4数字电路(组合电路,触发器,特别是D触发器构成分频器,奇数倍分频占空比为50%
,时序电路,并且能用Verilog语言描叙。)。
5熟悉FPGA设计流程(仿真,综合,布局布线,时序分析)。
6熟练掌握资源估算(特别是slice,lut,ram等资源的估算)。
7同步设计原理。
欢迎分享,转载请注明来源:品搜搜测评网