FPGA入门笔记(一)点亮第一盏灯quartus软件的使用.pdfVIP

FPGA入门笔记(一)点亮第一盏灯quartus软件的使用.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
panthera_chen@ 开篇语 笔者自大一学电子开始的三年中,无论是硬件电路设计或是软件程序设计,都从 网上各类资料获得无数帮助,临近大四,感慨有余,特开篇记录自己学习历程,希望 可以给后来者些许灵感,以此感谢前者资料给予笔者的帮助。然笔者不才,资历甚浅, 若有纰漏之处,在所难免,望各位指正,笔者感激不尽。 FPGA 入门笔记(一)点亮第一盏灯quartus 软件使用 相信很多人对于学习 51 单片机或是其他高级单片机时都是从点亮 led 开始,那么 笔者也跟随大流,以点亮第一盏 led 灯为例,介绍 quartus 软件的基本用法。笔者使用 的是 quartus13 版本,故往后笔记皆在 quartus13 环境下记录 ,且使用的硬件描述语 言为Verilog。 下图为 quartus13 打开界面。 使用 quartus 设计代码流程主要有工程建立Verilog 文件建立Verilog 代码编写 代码综合引脚配置代码下载,这也是必要的步骤,笔者也省去了例如仿真等重 要步骤,这些以后的笔记将会有说明 ,接下来笔者将根据上述步骤进行点亮 led 的设 计。 1、 工程建立 点击新建图标(或点击 filenew ),出现以下对话框: panthera_chen@ 第一步是默认的,第二步点击 OK 就 OK 了 ,接下来会出现下图对话框 panthera_chen@ 在这里,若没有已有的文件,第一第二步可忽略,直接进行第三步点击 next 即可。 本次笔记直接第三步 next。 此对话框为选择器件型号 panthera_chen@ 此对话框为 EDA 工具设置,本次不涉及 modelsim 仿真,故直接 next 即可。 此为之前设置状态汇总,直接 finish ,至此,第一步建立工程完成。 panthera_chen@ 2、 Verilog 文件建立 首先还是点击新建图标,如下 然后选择建立 Verilog 文件 至此Verilog 文件建立 3、 Verilog 代码编写 如下图所示,为 Verilog 代码编写模板,必不可少的三个部分:模块名和端口名、 输入输出信号定义、模块结束语。其中模块名要求与工程名保持一致。输入信号输出 信号定义要求要把第一部分的端口名定义完整,不能漏掉,其中 input 指的外部电路产 生输入 FPGA 处理的信号,clk 指外部晶振输入的时钟,rst_n 指复位信号;output 指 经 FPGA 处理后输出的信号。 panthera_chen@ 本设计要求设计一段 Verilog 程序,使 led 亮一秒,灭一秒,依次循环。如果是单 片机控制,则基本思路为设计一段延时函数,点亮后延时 1 秒熄灭,FPGA 也类似,这 里需要设计一个 1s 计数器,首先点亮 led 灯,开始计数,计数至 1s 后 led 电平翻转, 熄灭。因此我们需要设计两个小段代码,一段为 1s 计数器,一段为计满 1s 电平翻转 的代码。 计数 1s 代码设计如下: 由于板子使用的 50MHz 频率晶振,故一个周期 20ns ,每次时钟上升沿到时计数 器加 1 ,计数次刚好为 1s。我们首先定义一个 25 位宽寄存器 cnt ,系统复 位时 cnt 清零。由于使用的非阻塞语句,当计次时,再执行 cnt 清零指令 需要一个时钟周期的时间,所以当 cnt 清零时加起来刚好个时钟周期时间, 即 1s。除此外,在0cn时,每个时钟周期来时加 1。 在此,顺便说明 cnt 位宽的定义。cnt 定义为寄存器,在这里需要存的数用十进制 表示最大

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档