集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 7924|回复: 12

FPGA培训心得

[复制链接]
IPO 发表于 2011-2-28 20:35:49 | 显示全部楼层 |阅读模式
FPGA培训心得
介绍FPGA当今的形式及前景,讲解FPGA的开发流程,对常用的EDA工具进行了介绍。详细演示了modelsim的使用,尤其介绍脚本文件的使用,以及常用命令的介绍,最后演示了跑马灯以及quartus的使用

了解了FPGA的相关情况,对modelsim的使用有了进一步的了解,熟悉了相关命令和quartus的使用,对实验板进行了上电操作。
 楼主| IPO 发表于 2011-2-28 20:37:15 | 显示全部楼层

FPGA培训心得

本帖最后由 IPO 于 2011-2-28 20:39 编辑

FPGA培训心得
介绍了FPGA的发展历史,讲解了CPLD和FPGA的内部结构,工作原理,说明CPLD和FPGA的区别。接着讲解了Verilog的基本语法,以及编程风格和注意事项

CPLD和FPGA的区别:编程原理不一样。CPLD是逻辑门加寄存器,FPGA是基于查找表的。ALtera的FPGA的基本单元叫LAB,更小的单元叫LE;Xilinx的FPGA的基本单元叫CLB,更小单元叫Slice(上面有XY坐标)。掌握了奇数分频的实现方法(两个计数器,一个在上伸沿计,另一个在下降沿计,将得到的波形或),实现了M / N的分频实验。了解了parameter的使用,#(M,N)i1传递参数,在testbench中使用defparam i1.M=4’d3;defparam i1.N=4’d7; 后仿真遇到
 楼主| IPO 发表于 2011-2-28 20:38:00 | 显示全部楼层

FPGA培训心得

本帖最后由 IPO 于 2011-2-28 20:40 编辑

主要内容是介绍语法,上午主要讲解了阻塞和非阻塞赋值的区别,下午重点介绍了if-else,case,casex的用法以及它们之间的资源消耗的比较

Always@(a or b)块是组合逻辑,时序与组合的区别,电路中有无反馈。Case比if-else更耗资源,用case判断某个数在哪个范围,只需判断该数的高位二进制位,case的default不要忘。后仿真遇到问题,后天解决。
 楼主| IPO 发表于 2011-2-28 20:38:42 | 显示全部楼层

FPGA培训心得

本帖最后由 IPO 于 2011-2-28 20:40 编辑

今天学习对verilog语法有了一个宏观的认识,看了一些使用Verilog描述电路的例子。熟悉了Quartus软件和Modelsim软件的最基本使用。懂得了如何建立工程、V文件以及如何使用Modelsim进行仿真,如何看波形。而对于软件的一些高级功能和使用技巧,会在以后的学习中经常练习,慢慢的掌握和熟练。
        今天也编写了一个小程序,期间出现了一些问题,原因主要是因为对软件操作不熟和对操作的意义不够理解,另外我之前有将近一个月没有编写过Verilog了,多少会有一些生疏。
这些问题我想应该1、2个礼拜之后就会解决。
   我很喜欢今天的上课方式,夏老师一直在和我们交流,有了问题可以随时发问,随时解决。
   希望自己能兼顾学习质量和效率,争取最大的提高空间!
 楼主| IPO 发表于 2011-2-28 20:38:56 | 显示全部楼层

FPGA培训心得

本帖最后由 IPO 于 2011-2-28 20:40 编辑

今天学习的内容主要有三个部分。
        第一部分:介绍了FPGA技术的目前状况和未来发展走向。在这部分我了解到了大量FPGA在相关领域应用的大量信息。也直观的分析了ARM、DSP、CPLD、ASIC、FPGA之间各自的特点及它们之间的不同。强调了FPGA的优势及主要应用到的领域。
        第二部分:Modelsim 软件的使用技巧学习。在讲解如何使用软件之前,老师首先传授给我们几个自学一门软件要注意的事项。比如:在软件安装目录下,在特定文件夹里会有很多软件使用的配套技术文档和一些供我们自学的例子,由此引申到学任何一门软件,都要有这些意识,这样在遇到一个新软件时才不会觉得无从下手。另外,还特意强调了.ini文件,这是包含使用软件的所有默认配置的文件,其中我们通过软件进行我们自己设计的所有配置都可以在这里找到并修改。
        我们和老师配合,讲解与时间交叉进行,在较短的时间内就学习到了老师经过自己经验总结出的一个简单有效的使用Modelsim的仿真方法。我感觉老师很有激情,我们的情绪在老师的高要求下,也被带动起来了。应该说,通过这一部分的学习,对Modelsim 的使用已经基本够用了,接下来就需要我们自己去进一步熟练这些操作。
        还有一个概念,就是在Modelsim安装根目录下的W32文件夹里有很多的.exe文件,其中Modelsim.exe只是一个用户界面程序,我们在用户图形界面进行操作时,其真正工作机制是由Modelsim.exe来调用其它的.exe文件。
        第三部分:Quartus软件的使用。老师用最基本的操作给我们演示了从编写文件到下班的整个过程,我们也都在自己的电脑上独立的操作通过了,由于电脑原因,暂时没有将程序下载到板子里。
 楼主| IPO 发表于 2011-2-28 20:39:35 | 显示全部楼层

FPGA培训心得

本帖最后由 IPO 于 2011-2-28 20:40 编辑

今天上午我阅读了I2C协议,学习了其时序规范。I2C为二线串行通信总线。二线主要指SDA(串行数据线)和SCL(串行时钟线)。同时学习了EEPROM应用I2C协议总线进行数据传输的EEPROM读写控制器。已经开始试着一点一点的编写EEPROM读写控制器的RTL级代码,希望能够成功实现。
   下午,在夏老师的指导下,掌握了使用Quartus和Modelsim进行时序仿真的方法和操作。通过对代码的逻辑仿真和时序仿真结果(波形)的比较,进一步体会两种不同阶段仿真的不同。
简单总结了时序仿真的步骤如下:
时序仿真步骤
1、逻辑仿真,综合,布局布线,都执行完毕,并且生成了网表文件(.vo,.sdo两个文件是时序仿真所需要的)。
2、打开modelsim,建立库文件夹,在此文件夹中添加编译原来的我们自己编写的testbech和.vo文件,然后添加时序仿真所需要的元件库(在D:\altera\90\quartus\eda\sim_lib中查找),{如果找不到.sdo文件,则并把.sdo文件拷贝到我们的工程根目录下(即Modelsim的库所建在的目录下)}。
3、对testbench进行仿真。
 楼主| IPO 发表于 2011-2-28 20:41:43 | 显示全部楼层

FPGA培训心得

本帖最后由 IPO 于 2011-2-28 20:43 编辑

做实验
一,        后仿真
熟悉了后仿真流程,能独立完成,但速度比较缓慢,对后仿真的意义不是很明白,其中的竞争冒险,不明白,在我的印象之中,竞争冒险的概念是由于各延迟产生的,其具体原因还不明白
二,        实验
今天主要做了三个实验,跑马灯,救护车,音乐。
能独立完成下载个过程,但不是很熟悉,各具体的原因,没步的意义不是很明白
大概流程基本明白了
 楼主| IPO 发表于 2011-2-28 20:42:08 | 显示全部楼层

FPGA培训心得

本帖最后由 IPO 于 2011-2-28 20:44 编辑

一,        分频电路的实现
今天的实验主要是分频实验
问题点:
1,        对分频概念已理解,占空比已了解
2,        设计流程基本上已熟悉。
3,        自我问题是写程序比较困难,
原因:
A,        对语法不熟悉
B,        对如何分频设计方法难想出
C,        对如何实现分频整个程序设计比较困难,(今天完成了双分频,偶数分频,和偶数50%占空比)
奇数分频还未实现,原因是程序实际困难
二,        对FPGA内部机构了解
对FPGA内部结构有个大概的了解,基本概念熟悉,需私下反复阅读
更多理解
三,        计划
明天完成未实现的奇数分频,努力完成老师布置的实验

注意:
A,以后的实验注意 程序是如何实现的,以便熟悉语法和程序设计
 楼主| IPO 发表于 2011-2-28 20:42:21 | 显示全部楼层

FPGA培训心得

本帖最后由 IPO 于 2011-2-28 20:44 编辑

今天主要学习了,一些基本的语法

一,阻塞非阻塞
        阻塞零延时,符号“=”,非阻塞“<=” always 块内常用非阻塞,可认为是顺序执行,同语句 使用不同符号的结果是不同的,明显可以从
   A=B;                                                        A<=B;
                                                                       
C=A;                                                        C<=A
两个的电路图可明显比较得出区别;
二,IF ELSE 与 CASE 语句的互换 和区别,并非使用两者的结果都是一致的,没有单一的好坏之分
        可以从综合后的RCL电路图明显区别出两者的区别
 楼主| IPO 发表于 2011-2-28 20:42:43 | 显示全部楼层

FPGA培训心得

本帖最后由 IPO 于 2011-2-28 20:44 编辑

今天主要学习了,LED灯实验,和SRAM

一,        编码器和译码器,对三八译码器和编码器 用if语句和case语句进行编程,最后得出优先译码器用case语句比较好写,译码器用if语句。
二,        最后做了led静态显示,动态的没有做出来。
三,学习了sram的原理,其中的数据输入 和寄存器选择,和锁存器的原理。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-25 13:33 , Processed in 0.070737 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表