
工程教育中级报告.doc
12页工程教育中级报告题目:FPGA实验板设计专 业通信与信息工程学 号 07125110目 录1. 绪论(对FPGA的认识) 22. 第一章(硬件组成,软件设计流程) 23. 第二章(对VERILOG的简单描述) 44. 第三章(实验目的及内容) 55. 第四章(程序简介) 56. 第五章(总结) 67. 第六章(参考文献) 9绪论 对FPGA的认识FPGA是英文Field —Programniable Gate Array的缩写,即现场可编程门 阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物它是 作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制 电路的不足,又克服了原有可编程器件门电路数有限的缺点FPGA采用了逻辑单元阵列LCA这样一个概念,内部包括可配置逻辑模块 CLB、输岀输入模块I0B和内部连线三个部分FPGA的基本特点主要有:1) 采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用 的芯片2) FPGA可做其它全定制或半定制ASIC电路的中试样片3) FPGA内部有丰富的触发器和I / 0引脚4) FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器 件之一。
5) FPGA采用高速CHMOS I艺,功耗低,可以与CMOS、TTL电平兼容可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择 之一FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对 片内的RAM进行编程用户可以根据不同的配置模式,采用不同的编程方式 FPGA主耍生产厂商:1、 Altera2、 Xilinx3、 Actel4、 Lattice其中Altera和Xilinx主要生产一般用途FPGA,其主耍产品采用RAM工艺 Actel主耍提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺第一章 硬件组成以及软件设计流程一硬件组成1块电路板,8个发光二极管,8个电阻,5个数码管,1个下载端口, 1个下载芯片,9个按键,一片FPGA芯片,一根正极电线,一根负极电线,二软件设计流程(1) 打开quartus 2软件,进入编辑环境2) 新建一个项目(文件扩展名为・qpf),选择芯片类型为cyclone系列 的 EP1C6T144C8 芯片3) 点开新建文件窗口,选择block或者verilogfile,进行程序设立4) 画原理图或者verilog程序输入,保存,编译,查错,直至通过编 译。
5) 点开新建文件窗口,选择"vector waveform file” ,建立波形仿 真文件(文件扩展名为.vwf)o(6) 选择需仿真的节点:定义输入节点的波形;保存;开始波形仿真 查仿真波形有无错误,有错返回修改verilog程序或者原理图,直到结果 正确7) 分配管脚8) 保存,再次编译9) 选择 Assignments->device->configuration,选择 EPCS1 类型,编译10) 连上数据线,将数据线接上实验电板和主机插口11 )进行烧写,选择active serial progamming模式以及 ByteBlasterMV[LPT1] 口( program configure 项应该打勾)12)观察实验结果,看是否在硕件上能够正确运行,如果不是则继续查 错第二章 对verilog的简单描述Verilog HDL是硬件描述语言的一种,用于数字电子系统设计设计 者可用它进行各种级别的逻辑设计,可用它进行数字逻辑系统的仿真验 证,吋序分析,逻辑综合它是目前应用最广泛的以中国硬件描述语言因为数电课上学过VHDL,CPLD实验的时候用过VHDL,所以不免会将 VERILOG 1IDL 与 V11DL 做个 比较。
Verilog HDL和VHDL相比,最大的优点就是,它比VHDL更容易掌握 但是VERILOG HDL在系统级抽象方而比VHDL略差一些,而在门级开关电 路描述方面比VIIDL强得多VERILOG是一种自顶向下的设计,在高层次上往往编写一些行为级的 模块,并通过仿真加以验证,其主要目的是系统性能的总体考虑和各模块 的指标分配,并非具体的电路的实现,因为综合及其以后的步骤往往不需 进行而当设计的层次比较接近底层时,行为描述往往需要用电路逻辑来 实现,这时的模块不仅需要通过仿真加以验证,还需要进行综合,优化, 布线和后仿真第三章 实验的目的及内容一实验目的1掌握FPGA的工作原理,特点以及使用方法2熟悉常用按钮以及数码管的使用3掌握缓冲器的工作原理以及其应用方法二实验内容一分频器在FPGA的输出频率为16384000HZ的前提下要求实际程序输出的频率 应为lHZo也就是说,需要得到流水灯为1秒钟亮一个,数码管为一秒钟 显示一次要求将分频器的输出接入下一级的使能段,目的是为了统一时 钟域二发光二极管一共有八个发光二极管,要求是按照一秒钟为周期从左至右依次流水 点亮,第八个灯亮好以后再跳回第一个灯,使得第一个灯亮,再依次流水。
三数码管显示用八位的数码管显示器显示,频率也是1HZ,以0〜9为显示周期,显 示完9以后再跳回零,依次继续显示注意的是,实验板中的数码管为共 阳输出四按键控制用两个按键进行控制,按键J1按下去吋为从左至右流水灯依次显示, 数码管也是开始以1HZ频率计数;J1抬起时,表明暂停,同时暂停流水灯和数码管;按键J2按下表明清零,同时清零流水灯和数码管值得注意 的是,在分配管脚时,按键的管脚并不如发光二极管的那么简单,每一个 按键都是由两根线来控制的,一根为上拉,一根为接地按键示意图:程序简介第四章一分频器:module divide (elk,en);input elk;output en;reg en;reg[23:0] ent;always@(posedge clk)beginif (cnt==16384000)begincnt<=0;en<=l;endelsebegincnt<=cnt+l; en<=0;endendendmodule二流水灯module lsd (elk, 1, rst, enl, en2); in put elk, rs t,enl,e n2;output [7:0] 1;reg[7:0] 1;reg[2:0] q;always@(posedge elk)beginif (enl==0||en2==0)q<=q;elsebeginif (rst二二0)q<=0;elseq〈二q+1;case(q)3'd0:l=8,bOOOOOOOl;3'dl:l=8,bOOOOOOlO;3'd2:l=8,bOOOOOlOO;3'd3:l=8,bOOOOlOOO;3'd4:l=8,bOOOlOOOO;3'd5:l=8,bOOlOOOOO;3'd6:l=8,bOlOOOOOO;3'd7:l=8,blOOOOOOO; default:】二8' bOOOOOOOO; endcaseendendendmodule三数码管module smg(elk, 1, rst, enl, en2); in put elk, rs t,enl,e n2;output [6:0]1;reg[6:0]1;reg[3:0]q;always @(posedge elk)beginif (enl==01|en2==0)q<=q;elsebeginif (rst二二0)beginq<=0;1=8'bOOOOOOll;endelsebeginif (q二二9)q<=0;elseq〈二q+1;endbegin case (q)4'd0:l=7,bOOOOOOl;4'dl:l=7J blOOllll4'd2:l=7,bOOlOOlO4'd3:l=7,bOOOOllO4'd4:l=7J blOOllOO4'd5:l=7J bOlOOlOO4'd6:l=7,bOlOOOOO4'd7:l=7,bOOOllll;4'd8:l=7,bOOOOOOO;4'd9:l=7,bOOOOlOO; default:1=8,bOOOOOOO;endcaseenclendendendmodule四按键module aj (st,qs);input st;output qs;assignqs=!st;endmodule五原理图:第五章 总结这次学习了工程教育中级,我的感悟颇深。
因为这次的学习完全是通过自 己的双手,和动脑来完成的这次老师绝对不是像专业课堂上那样,一步一步 的手把手教,一句一句的叮咛重点,所有的一切都是在老师开始的简单介绍与 演示下,通过自己的推敲去慢慢发现问题的所在,从而达到解决问题的目的 老师这次的角色便成为了慢慢带领我们走向成功的指明灯,比起手把手一步一 步的教我们做,工程教育中级的特点实践性就由此变得更加明显了因为接触 一个新的软件,新的语言,不免会碰到这样那样的问题,通过自己发现问题, 从而做到解决问题,实在是认为有困难,便会找老师,由老师给与最专业也是 最有效的解答在这近10周的日子中,我从一个完全不懂什么是Verilog语言 的人,变成现在懂得一些基本运用,也能尝试调试编写一些小程序的人;我从 一个完全不认知何为quartus2软件的人,变成现在已经能够熟练运用软件的基 础部分的人,这些都要归功于实践,只有在不断地实践Z中才能最终不断发现 问题去予以解决解决的方法有很多,通过翻阅不同的参考文献,通过不断仿 真程序,通过和同组的同学一同努力探讨问题,实在不行,便会询问老师,有 时候老师的解答便会让我们很郁闷,因为很多时候确实是一个很低级的问题, 从而导致整个程序无法正常的运行,不过,老师并没有嘲笑我们,而是给了我 们更多的鼓励与自信,同时,这些问题也就更让我牢记在心,不会再犯第二次 了。
通过这短短的十周时间,我更能了解到,其实普普通通的我们也能成为一 个“工程师”,虽然我们编的程序还很有漏洞,虽然我们的语言还是很生疏,虽 然我们的思维可能并不是很灵活,虽然我们还是需要在不断地失败中成长,但 是这一切并不会打败我们,因为,这次的工程教育中级己经燃起了我对这一领 域的求知欲,可能我之后的路途述很遥远,但是,我相信,只要我能够坚持下 去,在以后的生活学习中继续磨练自己,也就一定会取得相应的成功也许工 程师需要的资质,我现在还差许多许多,因为,就像张老师说的那样,毕竟不 是人人都能做工程师的但是只要自己肯继续在实践中发现自己,完善自己, 其实,工程师也并不遥远!第七章 参考文献1、赵伟良,丁晓青《工程教育中级实验指导书》上海大学通信学院电 子电工实验中心2 夏宇闻«verilog数字系统设计教程》北京航空航天大学出版社。
