文章目录

  • 1.D触发器基本原理
  • 2.用控件创建D触发器并仿真
    • 2.1新建项目
    • 2.2创建D触发器原理图
    • 2.3编译仿真
  • 3.直接调用D触发器并仿真
    • 3.1新建项目
    • 3.2创建D触发器原理图
    • 3.3编译仿真
  • 4.用verilog语言编写D触发器并仿真
    • 4.1用verilog语言创建D触发器原理图
      • 4.1.1配置vscode
      • 4.1.2代码编写
      • 4.1.3新建项目
    • 4.2编译仿真
  • 5.总结
  • 6.参考

环境:

quartus 18.1 lite版

modelsim altera 18.1 lite版

1.D触发器基本原理

D触发器是CMOS数字集成电路单元中时序逻辑电路中的重要组成部分之一,学习D触发器具有十分重要的意义,可以帮助了解数字集成电路的单元。

D触发器属于时钟控制触发器,一般而言,时钟控制的触发器可以分成三大类:

第一类时钟控制触发器要求时钟信号的脉冲宽度小于触发器的传输延迟,即时钟信号先为高,接着必须在触发器的输出状态改变之前变为低。

第二类时钟控制触发器的特点是,时钟信号为高电平时触发器改变输出状态,通常称这种触发器为电平敏感触发器(锁存器Latch)。

第三类触发器的特点是边沿触发,时钟信号的上升/下降沿会使触发器改变输出状态(寄存器Register)。

D触发器(data flip-flop)也称为维持-阻塞边沿D触发器,由六个与非门组成,其电路图及其逻辑符号如下图所示。其中G1和G2构成基本的RS触发器,G3和G4构成时钟控制电路,G5和G6组成数据输入电路。由于 分别为复位端和置位端,在分析D触发器工作原理时均视为高电平,以保证不影响电路工作。

方程

Q(n+1)=D

功能表

2.用控件创建D触发器并仿真

2.1新建项目

File->New Project Wizard:

点击Next

设置工程的存储位置和项目名称

点击Next

选择目标芯片:cycloneIVE系列的EP4CE115F29C7

点击Next

点击finish

2.2创建D触发器原理图

首先打开QuartusII,选菜单“File”一“New”,在弹出的“New-”对话框中选择“ Design Files” 的原理图文件编辑输入项“Block block diagram/schematic File"按"OK"后将打开原理图编辑窗。

通过编辑工具,利用4 个 nand2 与非门,1 个 not 非门,2个输入管脚和2个输出管脚,并连线,最终如下图:

先进行全局编译,看是否出错

将做的图,生成硬件电路图,更方便查看

生成的硬件电路图如下,符合D触发器特性

2.3编译仿真

新建波形文件。如上面新建图形文件的方法,从“file”中选择“new”,然后从出现的对话框中选择“university program VWF”。
点击“OK”。

输入波形文件。在波形文件编辑器左端大片空白处双击,出现“insert node or bus”对话框,点击“node finder”按钮。然后在随后出现的“node finder”对话框中点击“list”按钮,则半加器中所有的输入输出引脚全部出现在对话框左边。再在该界面上点击“>>”,则把左边所有的端口都选择到右边,进入波形,如图。

编辑输入CLK,产生时钟信号

把输入D随便设置几个低电平和高电平

点击功能仿真编译按钮:

仿真结果如下,画圈处和时钟周期做对比确实延迟了半个周期

点击时序仿真按钮:

时序结果如下,画圈处和时钟周期做对比确实延迟了一个周期

时序仿真图:

3.直接调用D触发器并仿真

3.1新建项目

步骤和2.1同

3.2创建D触发器原理图

此处是直接调用D触发器

再添加输入和输出管脚。最终原理图如下:

编译没有出错,然后生成查看硬件电路图

3.3编译仿真

具体步骤与2.3仿真步骤相同

结果如下,画圈处和时钟周期做对比确实延迟了半个周期
功能仿真波形图:

结果如下,画圈处和时钟周期做对比确实延迟了一个周期
时序仿真波形图:

4.用verilog语言编写D触发器并仿真

4.1用verilog语言创建D触发器原理图

4.1.1配置vscode

下载vscode并且装上相应的插件,特别是Verilog-HDL/SystemVerilog/Bluespec SystemVerilog此插件非常重要,然后继续将vscode配置modelsim进行语法检错,语法检错参考博客https://blog.csdn.net/weixin_43828944?type=blog
最后设置自动保存。(既然用了vscode就可以继续去发现更多好用的插件来帮助自己写verilog代码,目的也在于此)

4.1.2代码编写

配置好后,继续新建文件夹,下图是一个文件路径参考,即先建一个code文件,然后此次项目的触发器文件D,D文件下继续新建三个文件,prj用来保存项目,,rtl保存实现功能的代码文件,tb保存仿真代码文件

在rtl,和tb文件下新建空的.v文档,用vscode打开,开始编写代码


dwave.v代码如下

//dwave是文件名
module dwave(D,CLK,Q);input D;input CLK;output Q;reg Q;always @ (posedge CLK)//我们用正的时钟沿做它的敏感信号beginQ <= D;//上升沿有效的时候,把d捕获到qend
endmodule

dwave_tb.v代码如下


//测试代码
`timescale 1ns / 1nsmodule dwave_tb;reg CLK,D;wire Q;dwave u1(.D(D),.CLK(CLK),.Q(Q));initialbeginCLK = 1;D <= 0;foreverbegin#60 D <= 1;//人为生成毛刺 #22 D <= 0;#2  D <= 1;#2  D <= 0;#16 D <= 0;//维持16ns的低电平,然后让它做周期性的循环endendalways #20 CLK <= ~CLK;//半周期为20ns,全周期为40ns的一个信号
endmodule

4.1.3新建项目

项目保存到prj文件下,其余与2.1相同步骤

建好文件后,双击下图第二步,进入添加页面

点击三个点处,添加写得两个.v代码文件

添加好后,点击Tools->Options->EDA Tool Options,在下图处导入如下路径

完成后,准备配置Test Benches,点击Assignmens->Settings,随后依次按下图打开选项框,第四步是找到仿真文件,并且点击open

最后按下图二三步配置名字,名字即是导入的文件名,最后点击add,然后依次点击ok,完成其余的选项框

4.2编译仿真

点击全编译,没有报错

查看硬件原理图,也没问题

打开仿真

找到sim窗口,添加u1

找到wave窗口,依次点击->Restar->Run all->zoom full->Zoom In On Active Cursor,得到如下仿真波形,具体的实际操作页面可能和本人的不一样,因为在仿真界面本人还进行了黑波白底设置,工具栏调整

5.总结

首次接触fpga,对于这门语言的编写掌握是不足的,但是学起来感觉和c差距不大,较容易上手,然后本次作业的难点在于编译仿真部分,可能会报出各种各样的错误,但是一般网上都有解决方案,其次就是完成写verilog代码并且编译仿真这个步骤,做这个步骤时一定要掌握特定的流程,比如怎么新建文件,用什么软件写代码(vscode书写确实可以装很多插件,很方便),如何导入等,掌握后,一直按照标准流程来,省时省力也不容易出错

6.参考

​ https://blog.csdn.net/weixin_46129506/article/details/123443865

【FPGA实训第一周】---Quartus入门相关推荐

  1. 项目实训第一周2-学习系统的使用

    项目实训第一周2-学习系统的使用 1.代码生成器的使用 2.sql生成器的使用 3.其他组件的使用 1.代码生成器的使用 如图,是代码生成器的基本构造 可以自行定义选择你要生成代码的注释信息,表信息, ...

  2. 项目实训第一周(车道线检测)

    项目实训我主要负责计算机视觉方面,识别出车道线并据此导航.相关内容也更新在我的个人博客上个人网站 相关介绍 车道线检测如果用传统方法,识别速度较慢,效果不够好,容易受到多种因素的干扰,因此我们打算开发 ...

  3. 项目实训第一周工作(3)

    项目实训题目:饮食健康管理系统设计与实现 我的工作:数据清洗 具体工作事项:数据清洗:错误数据处理:图片大小归一化:图片存放位置归并:与数据库同学沟通:不对应(冗余或缺失)图片的删除与处理等. 本博客 ...

  4. (个人)VR实时交互的太极拳学习系统创新实训第一周(2)

    这周主要进行了人物模型和示例动画的制作和利用动捕进行舞蹈学习的论文的学习. 使用Neuron和Motion Builder进行了太极拳动作的采集和处理.以下是我使用Motion Buileder导出模 ...

  5. (个人)AR电子书系统创新实训第一周(1)

    -我们小组五人在选定了实训的课题之后就开始仔细讨论整个项目的设计.在产品展示上我们分为两部分,一块是纸媒,一块是APP. - 纸媒的展示效果就是,在我们做的宣传册上扫图片就可以获得二维甚至三维的视觉体 ...

  6. (个人)VR太极拳学习系统-创新实训第一周(1)

    项目简述 我们预计开发一个基于虚幻4引擎的帮助用户学习太极拳的实时系统,该系统会使用到当前比较热门的人机交互技术来实现功能,例如虚拟现实.动作捕捉.语音控制等.我们预计当该系统开发完毕后,它应该能够为 ...

  7. 项目实训第一周第三篇

    今天在学习股票预测程序的推广方法,学习总结到了如下的方法 把软件发布到大型的软件下载网站 结合受众人群做活动营销 我们的股票预测分析网站面向的是有对股票预测需求的人 有股票分析师.金融研究人员.炒股人 ...

  8. (个人)太极拳学习系统创新实训第一周(一)

    一.项目背景: 太极拳作为国家非物质文化遗产,集颐养性情.强身健体.技击对抗等多种功能为一体.为了能够更好的帮助人们学习和传承太极拳,我们想要开发出一种可以实时校准用户动作并且能够对用户动作评估的太极 ...

  9. 山东大学软件学院项目实训第一周

    在需求分析结束后,我们进行了数据库的结构设计,根据需求分析中设想的需要存储的数据进行数据库设计. 我们将数据设计分为考试信息表,班级考试表,考试题库表,用户试卷表,试卷答案表,题目表,题目答案表,题目 ...

最新文章

  1. 记一次LVM修复过程
  2. 【PAT甲级 十进制转十三进制】1027 Colors in Mars (20 分) Java版 5/5通过
  3. 最好用的pe_PE给水管在施工过程中需要注意五大问题
  4. Qt4_Hello world
  5. 单链表的基本操作---插入,删除,交,并,相邻元素的交换等
  6. WindowManager添加一个悬浮的Window
  7. BootStrap 模态框禁用空白处点击关闭,手动显示隐藏,垂直居中
  8. [转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
  9. 第三篇:关于MVPArms与OKGO结合报错--mRootView为空
  10. C语言 - 常见面试题整理
  11. H5 游戏 俄罗斯方块 双人互动游戏
  12. 一名【合格】前端工程师的自检清单
  13. pycharm电脑上怎么下载-Pycharm下载和安装图文教程[超详细]
  14. 个人开发作品分享:iTab新标签页
  15. 树莓派自动饮水机编程示例
  16. 根据指定时间范围取得对应(第几)周信息,以及一年当中所有周时间范围列表信息(可用于学期第几周,年第几周)
  17. 怎么把桌面计算机的快捷,教你在电脑桌面如何设置“一键关机”快捷图标的教程...
  18. [HTML]入门小知识,列表?框架?表格?来吧。纯手工制作,满满都是智慧
  19. Springboot项目install打包-某些输入文件使用了未经检查或不安全的操作。分析与解决
  20. 在LCD上显示英文和汉字

热门文章

  1. win10安装mysql一直卡在最后一步进行不下去
  2. SDRAM的数据存储实现并对其数据进行读写操作
  3. qt调节linux系统音量,QT语音声音小怎么办?QT语音各种声音调节教程
  4. 云和恩墨受邀参加CCSA TC601第一次《SQL质量管理服务能力要求》标准研讨会
  5. dw6能编译asp吗_dreamweaver运行asp文件的方法
  6. Spire.Office获取免费版
  7. linux 目录md5校验,【我的Linux,我做主!】浅谈MD5校验文件完整一致性
  8. SpringBoot的竞争对手——Micronaut入门教程
  9. 2022云计算技能大赛-私有云
  10. 向Spotify学习如何设计产品(转)