基于FPGA十进制同步计数器_第1页
基于FPGA十进制同步计数器_第2页
基于FPGA十进制同步计数器_第3页
基于FPGA十进制同步计数器_第4页
基于FPGA十进制同步计数器_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

十进制同步计数器十进制同步计数器 一 一 实验目的实验目的 1 学习十进制同步计数器的 Verilog 硬件设计 2 学会并掌握 Quartus II 软件的使用 3 学会并掌握 modelsim 仿真软件的使用 二 二 实验原理实验原理 进制计数器具有电路结构简单 运算方便等特点 但是日常生活中我们所 接触的大部分都是十进制数 特别是当二进制数的位数较多时 阅读非常困难 还有必要讨论十进制计数器 在十进制计数体制中 每位数都可能是 0 1 2 9 十个数码中的任意一个 且 逢十进一 根据计数器的构成 原理 必须由四个触发器的状态来表示一位十进制数的四位二进制编码 第 2 个计数脉冲来到后 其状态为 0010 以下类推 可以得到如表 1 所示 的状态表 但需注意 在第 9 个脉冲来到后 亦即计数器处于 1001 态时 低电 平封住了 F2 的置 1 端 Q1 的高电平又使 K4 1 故第十个计数脉冲来到后 F2 F3 状态不变 F1 F4 同时置 0 计数器跳过多余的 6 个状态 完成一次十 进制计数循环 计数 NQ4 Q3 Q2 Q1十进制 00 0 0 0 0 10 0 0 11 20 0 1 02 30 0 1 13 40 1 0 04 50 1 0 15 60 1 1 06 70 1 1 17 81 0 0 08 91 0 0 19 101 0 1 0 111 0 1 1 121 1 0 0 131 1 0 1 表 1 同步十进制加法计数器状态表 为了满足十进制加法计数器的原理 本实验用 Verilog 程序在 FPGA CPLD 中来实现 首先设计一个程序 程序为脉冲输入 设输出的四位码为 q 3 0 十进制计数值为 count 脉冲上升沿时 q 值 1 直到 q 9 时 count 1 q 置零重 新开始计数直至下一个 q 9 count 2 依次循环 三 三 实验任务实验任务 1 根据实验目的编写 verilog 程序 2 将设计好的 Verilog 译码器程序在 Quartus II 上进行编译 3 对程序进行适配 仿真 给出其所有信号的时序仿真波形图 注意仿真波形 输入激励信号的设置 本实验要求自己设置 clr 值 理解清零的意义 四 实验步骤 四 实验步骤 1 建立工作库文件和编辑设计文文件 任何一项设计都是一项 Project 工程 而把一个工程下的所有文件放在 一个文件夹内是一个非常好的习惯 以便于我们整理 利用和提取不同工程下 的文件 而此文件夹将被 EDA 软件默认为 Work Library 工作库 所以第一 步先根据自己的习惯 建立个新的文件夹 1 新建文件夹 在 E 盘建立并保存工程 文件夹取名 myproject 工程 取名为 cnt10 1 2 输入源程序 打开 Quartus II 选择菜单 File New Design Files VerilogHDL File OK 如下图所示 代码如下 module cnt10 1 clr clk q cout input clr clk output 3 0 q output cout reg 3 0 q regcout always posedge clk begin if clr q 0 else begin if q 9 q 0 elseq q 1 if q 0 cout 1 elsecout 0 end end endmodule 3 保存文件 完成一步就保存一步是一个好习惯 这样即使出现意外情 况 也不至于以前的努力付诸东流 选择 File Save as 选择保存路径 即 刚才新建的文件夹 myproject 文件名应与实体名保持一致 即 cnt10 1 点击 保存后会跳出 Do you want to create a new project with this file 选 择 是 则进入如下界面 点击 Next 进入 工程设置 对话框 如图所示 第一行表示工程所在的文件夹 第二行为工程名 可以与顶层文件的实体 名保持一致 也可以另取别的名字 第三行为当前工程顶层文件的实体名 点击 next 进入 ADD FILE 对话框 如图所示 单击 Add All 按钮 将工 程相关的所有 VHDL 文件加进工程 也可以单击 Add 选择性加入 按此 步骤建立工程 工程已经自动将所有文件加进去了 可以直接点击 next 当先 直接建立工程时 需要自己添加 4 选择目标芯片 我们选用的是 CycloneIII 系列的 EP3C55F484C8 在 Family 栏选择芯片系列 CycloneIII 在窗口右边的三个下拉列表框选择过 滤条件 分别选择 Package 为 FBGA Pin count 为 484 和 Speed grade 为 8 点击 Next 如图所示 5 工具设置 进入 EDA 工具设置窗口 有三个选项 分别是选择输入的 HDL 类型和综合工具 选择仿真工具 选择时序分析工具 这是除 Quartus II 自含的所有设计工具以外的外加的工具 如果不作选择的 表示仅选择 Quartus II 自含的所有设计工具 本次不需要其他的设计工具 可以直接点击 Next 6 结束设置 进入 工程设置统计 窗口 列出了与此工程相关的设置情 况 设置完成 点击 Finish 2 编译 配置好后就可以进行编译了 点击 Processing Start Compilation 命令 启动全程编译编译成功后的界面如图所示 3 时序仿真 1 打开波形编辑器 File New Verification Debugging Files Vector Waveform OK 即出现空白的波形编辑器 如图所示 2 设置仿真时间区域 Edit End Time 在 Time 栏中输入 50 单位选 择 us 点击确定并保存波形文件 3 将工程 cnt10 1 的端口信号名选入波形编辑器中 View Utility windows Node Finder 在 Filter 框中选 Pins all 通常是默认选项 然 后点击 List 则显示出了所有引脚 如图所示 将重要的端口名拖进波形编辑器后关闭窗口 4 编辑输入波形 首先进行总线数据格式设置和参数设置 点击信号左 边的 号 能展开此总线中的所有信号 如果双击此 号左边的信号标记 将弹 出对该信号数据格式设置的 Node Properties 对话框 在该对话框的 Radix 下 拉列表中有四种选择 这里可选择二进制 Binary 表达方式 其次输入波形数据 用鼠标在图所示信号名的某一数据区拖拉出来一块蓝 色区域 然后单击左侧工具栏的问号 按钮 在弹出窗口输入数据 继而 在不同区域设置不同数据 本设计不需要输入数据 脉冲及输入 5 仿真 仿真器参数仿真 选择 Assignment Settings 命令 在 Settings 窗口下 选择 Category Simulator Settings 在右侧的 Simulation mode 下拉列表 中选择 Timing 即选择时序仿真 并选择仿真激励文件名 cnt10 1 vwf 选择 Simulation Period 栏 确认选中了 Run simulation until all vector stimuli are used 6 启动仿真器 Processing Start Simulation 直至出现 Simulation was successful 仿真结束 然后会自动弹出 Simulation Report 如图所示 4 应用 RTL 电路图观察器 Tools Netlist Viewers RTL Viewer 结果如图所示 四 四 实验总结实验总结 FPGA 的学习是一个循序渐进的过程 一开始接触到 Qurtus ii 的时候觉得 很困难 尤其是仿真 初次仿真的时候对参数的设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论