实验五 计数器的设计与仿真

news2024/11/17 5:49:57

仿真

链接:https://pan.baidu.com/s/1N1nR39Gws59laVZY2slzBw 
提取码:01ct

一、实验目的

1、通过实验,能熟悉QUARTUS开发环境,能够掌握VHDL设计电路,掌握使用相关仿真工具进行功能和时序仿真的方法;

2、通过实验,加深对计数器等时序逻辑电路的理解,并能使用VHDL完成计数器的设计,并能在QUARTUS中完成相关的仿真验证;

二、实验原理

1、计数器的功能表见教材相关章节;

2、使用VHDL完成计数器的设计,并能在QUARTUS中完成相关的仿真验证;

三、实验设备和器材

电脑、QUARTUS集成开发环境。

四、实验内容和步骤

4.1 VHDL设计

1.分析下列例程,得出其功能(预习时自行完成);

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNTM IS

   PORT (CLK,RST,EN,LOAD : IN STD_LOGIC;

      DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

      DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      COUT : OUT STD_LOGIC);

END CNTM;

ARCHITECTURE behav OF CNTM IS

BEGIN

   PROCESS(CLK,RST,EN,LOAD)

   VARIABLE Q : STD_LOGIC_VECTOR(3 DOWNTO 0);

 BEGIN

 IF RST='0' THEN Q:= (OTHERS=>'0');

   ELSIF CLK'EVENT AND CLK='1' THEN

      IF EN='1' THEN

          IF(LOAD='0') THEN Q:=DATA; ELSE

             IF Q<12 THEN Q:=Q+1;

                ELSE Q:=(OTHERS=>'0');

             END IF;

          END IF;

       END IF;

    END IF;

    IF Q="1100" THEN COUT<='1';

       ELSE COUT<='0';END IF;

     DOUT<=Q;

  END PROCESS;

END behav;

功能:模为13的加法计数器

  1. 在QUARTUS中建立相关工程,并将例程输入其中,并完成相应的功能仿真和时序仿真;

4.2  10进制计数器

修改上述例程,设计模为10 的计算器,并完成相应的功能仿真和时序仿真。

4.3  60位进制计数器

在4.2设计的10进制计数器的基础上,设计模为60的计数器,并完成相应的功能仿真和时序仿真。

五、实验记录和实验结果

5.1 VHDL设计

    1. 给出在QUARTUS中,使用VHDL设计电路的流程和步骤(预习时完成)

  1.  启动Quartus软件:安装并启动Quartus软件,在主界面选择"Create a New Project",创建一个新的工程。
  2. 2. 指定项目名称和存储位置:为项目选择一个合适的名称,并指定项目的存储位置。
  3. 3. 添加源文件:在项目设置界面,点击"Add Files"按钮,将VHDL源文件(.vhd)添加到项目中。可以选择直接编写代码或者导入现有的VHDL文件。
  4. 4. 设计顶层模块:在VHDL源文件中,编写顶层模块的代码。顶层模块是整个电路的主要组成部分,包含其他子模块的实例化以及输入输出端口的声明。
  5. 5. 添加并连接子模块:如果需要,可以编写其他子模块的代码,并实例化到顶层模块中。使用适当的连接语法将不同模块之间的输入输出端口连接起来。
  6. 6. 编译设计:在项目设置界面,选择"Compile Design",Quartus将对代码进行编译,并生成中间文件和报告。

  1. 选择file,new,university programVWF,建立一个waveform,以便进行波形调试。
  2. 8. 进行功能仿真:在项目设置界面,选择"Simulate",run functional simulate,Quartus将打开ModelSim仿真器或quartus II仿真器,并加载设计信号和端口信息。

9.进行时序仿真:在项目设置界面,选择"Simulate",run timing simulate,Quartus将打开ModelSim仿真器或quartus II仿真器,并加载设计信号和端口信息。

    1. 给出例程的功能

功能:模为13的加法计数器

    1. 完成对例程的功能仿真和时序仿真,记录仿真结果

功能仿真:

时序仿真:

5.2 10进制计数器

  1. 给出10进制计数器的实现代码(请预习时完成)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNTM10 IS

   PORT (CLK,RST,EN,LOAD : IN STD_LOGIC;

      DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

      DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

      COUT : OUT STD_LOGIC);

END CNTM10;

ARCHITECTURE behav OF CNTM10 IS

BEGIN

   PROCESS(CLK,RST,EN,LOAD)

   VARIABLE Q : STD_LOGIC_VECTOR(3 DOWNTO 0);

 BEGIN

 IF RST='0' THEN Q:= (OTHERS=>'0');

   ELSIF CLK'EVENT AND CLK='1' THEN

      IF EN='1' THEN

          IF(LOAD='0') THEN Q:=DATA; ELSE

             IF Q<9 THEN Q:=Q+1;

                ELSE Q:=(OTHERS=>'0');

             END IF;

          END IF;

       END IF;

    END IF;

    IF Q="1001" THEN COUT<='1';

       ELSE COUT<='0';END IF;

     DOUT<=Q;

  END PROCESS;

END behav;

  1. 完成对所设计10进制计数器的功能仿真和时序仿真,记录仿真结果

功能仿真:

以4位二进制代码表示数字,当计数器计数至9(1001),开始置0(0000)

仿真正确

时序仿真:

仿真正确

5.3 60进制计数器

  1. 给出60进制计数器的实现代码(请预习时完成)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNTM60 IS

   PORT (CLK,RST,EN,LOAD : IN STD_LOGIC;

      DATA : IN STD_LOGIC_VECTOR(5 DOWNTO 0);

      DOUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);

      COUT : OUT STD_LOGIC);

END CNTM60;

ARCHITECTURE behav OF CNTM60 IS

BEGIN

   PROCESS(CLK,RST,EN,LOAD)

   VARIABLE Q : STD_LOGIC_VECTOR(5 DOWNTO 0);

 BEGIN

 IF RST='0' THEN Q:= (OTHERS=>'0');

   ELSIF CLK'EVENT AND CLK='1' THEN

      IF EN='1' THEN

          IF(LOAD='0') THEN Q:=DATA; ELSE

             IF Q<59 THEN Q:=Q+1;

                ELSE Q:=(OTHERS=>'0');

             END IF;

          END IF;

       END IF;

    END IF;

    IF Q="111011" THEN COUT<='1';

       ELSE COUT<='0';END IF;

     DOUT<=Q;

  END PROCESS;

END behav;

  1. 完成对所设计60进制计数器的功能仿真和时序仿真,记录仿真结果

功能仿真:

以6位二进制代码表示数字,当计数器计数至59(111011),开始置0(000000)

时序仿真:

六、实验预习要求

  1. 实验前认真阅读本实验指导;
  2. 熟悉quartus中相关操作及相关器件。
  3. 完成四和五中要求预习时完成的内容。

七、思考题

1、在quartus完成对时序逻辑电路设计、功能仿真及验证的有哪些?

1.在quartus中创建一个新的工程,并创建一个新的原理图或VHDL文件。

2.在原理图或VHDL文件中设计时序逻辑电路,定义输入和输出端口。

3.编译和综合电路,检查是否有错误或警告。

4.创建一个测试平台文件,定义测试波形或测试向量。

5.进行仿真测试,观察时序波形是否正确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1884663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

.js.map文件泄露/Springboot信息泄露

目录 框架识别 Webpack 简述 .js.map文件泄露 利用 Spring boot 很多网站都使用的是现有的框架进行开发的&#xff0c;因此相当于很多目录和文件的路径都是开源可知的&#xff0c;因此我们就可以直接访问对应的路径&#xff0c;如果网站没有进行限制就有可能会导致敏感信…

Mac搭建anaconda环境并安装深度学习库

1. 下载anaconda安装包 根据自己的操作系统不同&#xff0c;选择不同的安装包Anaconda3-2024.06-1-MacOSX-x86_64.pkg&#xff0c;我用的还是旧的intel所以下载这个&#xff0c;https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/&#xff0c;如果mac用的是M1&#xff0…

Administrators就最高了???system是什么??本地用户提权内网学习第三天 你知道uac是什么??

我们今天来说说本地用户提权的操作&#xff0c;我们在有webshell过后我们要进行进一步的提权操作&#xff0c;要不然对我们后期的内网渗透会有一些阻碍的操作。比如说我们使用mimikatz来进行抓取密码&#xff0c;就不能够成功。 Administrators与system的区别 我们来说说Admin…

毫米波雷达深度学习技术-1.7训练一个神经网络

1.7 训练一个神经网络 对于训练神经网络&#xff0c;有两个步骤&#xff0c;即前向传递和误差反向传播。 1.7.1 前向传播和反向传播 在前向传递中&#xff0c;输入被馈送到模型并与权重向量相乘&#xff0c;并为每一层添加偏差以计算模型的输出。密集层或全连接层第l层的输入、…

微信小程序的运行机制与更新机制

1. 小程序运行机制 1.1. 冷启动与热启动 冷启动为用户第一次打开小程序时&#xff0c;因为之前没有打开过&#xff0c;这是第一种冷启动的情兑。第二种情况为虽然之前用户打开过&#xff0c;但是小程序被用户主动的销毁过&#xff0c;这种情况下我们再次打开小程序&#xff0…

西门子S120伺服驱动器F1910故障报警处理总结

西门子S120伺服驱动器F1910故障报警处理总结 热压机正常工作时出现故障,无上升和下降动作,伺服故障代码为1910, 同时发现压机的实际压力为13Mpa,没有达到设定的14Mpa, 查看S120的报警手册,如下图所示, F01910:现场总线设定值超时,与上位机控制器的通讯故障, 可能的原…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑复合指标优化模态分解和 Stacking 集成的综合能源系统多元负荷预测》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

巴西东南湾乌巴图巴 ANTARES 监测站数据

ANTARES monitoring station in Ubatuba, Southeast Brazilian Bight 巴西东南湾乌巴图巴 ANTARES 监测站 简介 ANTARES 区域网络由分布在拉丁美洲的沿岸时间序列站组成。主要目的是研究气候和人为影响引起的长期变化&#xff0c;以及用于卫星匹配和算法开发的海洋颜色。Uba…

一分钟学习数据安全—自主管理身份SSI分布式加密密钥管理

在这篇之前&#xff0c;我们已经对SSI有了一个全局的了解。这个系列的文章可以作为一个学习笔记来参考&#xff0c;真正要实践其中的一些方案、协议&#xff0c;还需要参考专业的书籍和官方文档。作为一个SSI系列学习笔记的最后一篇&#xff0c;我们做一个简单的延伸&#xff0…

【PLC】三菱PLC如何和汇川伺服实现485通信

前言 一开始选用的是汇川SV660P脉冲型伺服&#xff0c;由于生产需求需要对伺服的个别参数进行读取和写入操作&#xff0c;但是SV660P并不支持这种情况&#xff0c;因此需要使用485通信来满足。PLC这边选用的是三菱FX5U。 开始 1、首先准备按照下图的引脚提示准备好一根带屏蔽…

(七)glDrawArry绘制

几何数据&#xff1a;vao和vbo 材质程序&#xff1a;vs和fs(顶点着色器和片元着色器) 接下来只需要告诉GPU&#xff0c;使用几何数据和材质程序来进行绘制。 #include <glad/glad.h>//glad必须在glfw头文件之前包含 #include <GLFW/glfw3.h> #include <iostrea…

英伟达经济学:云服务商在GPU上每花1美元 就能赚7美元

NVIDIA超大规模和 HPC 业务副总裁兼总经理 Ian Buck 近日在美国银行证券 2024 年全球技术大会上表示&#xff0c;客户正在投资数十亿美元购买新的NVIDIA硬件&#xff0c;以跟上更新的 AI 大模型的需求&#xff0c;从而提高收入和生产力。 Buck表示&#xff0c;竞相建设大型数据…

flask中解决图片不显示的问题(很细微的点)

我在编写flask项目的时候&#xff0c;在编写html的时候&#xff0c;发现不管我的图片路径如何变化&#xff0c;其就是显示不出来。如下图我框中的地方。 我尝试过使用浏览器打开&#xff0c;是可以的。 一旦运行这个flask项目&#xff0c;就无法显示了。 我查阅资料后。发现…

Kafka-时间轮和延迟操作-源码流程

TimingWheel 字段&#xff1a; buckets&#xff1a;Array.tabulate[TimerTaskList]类型&#xff0c;其每一个项都对应时间轮中的一个时间格&#xff0c;用于保存 TimerTaskList的数组。在TimingWheel中&#xff0c;同一个TimerTaskList中的不同定时任务的到期时间可能 不同&a…

【Dison夏令营 Day 06】用 Python 和 Rich 制作 Wordle克隆(中篇)

在大流行期间&#xff0c;Wordle 在 Twitter 上还算比较流行的一款基于网络的益智游戏&#xff0c;要求玩家每天在六次或更短时间内猜出一个新的五个字母的单词&#xff0c;每个人得到的单词都是一样的。 在本教程中&#xff0c;你将在终端上创建自己的 Wordle 克隆。自 2021 …

【Qt】认识Qt界面Hello world小程序

一.认识Qt界面 1.左边栏 在编辑模式下&#xff0c;左边竖排的两个窗⼝叫做 "边栏" 。 ① 是项⽬⽂件管理窗⼝ ② 是打开⽂件列表窗⼝。 边栏⾥的窗⼝数⽬可以增加&#xff0c;边栏⼦窗⼝标题栏有⼀排⼩按钮&#xff0c;最右边的是关闭按钮&#xff0c;倒数第⼆个是 …

分布式限流:Spring Cloud Gateway 限流

分布式限流&#xff1a;Spring Cloud Gateway 限流 在现代微服务架构中&#xff0c;流量控制是一个至关重要的部分。分布式限流作为一种有效的流量控制手段&#xff0c;能够帮助我们保护系统不被突发的流量冲垮。Spring Cloud Gateway支持多种限流方式。 什么是分布式限流 分…

电影交流平台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;电影类型管理&#xff0c;留言反馈管理&#xff0c;电影中心管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;电影中心&#xff0c;留言反馈 开发系统&#xff1a;Window…

适用于高海拔地区的工业路由器产品

1、西藏背景 西藏&#xff0c;这个位于中国西南部的神秘之地&#xff0c;以其雄伟壮观、神奇瑰丽的自然风光和深厚的文化底蕴&#xff0c;被无数人视为心中的圣地。这里属于高原性气候&#xff0c;具有气温低、气压低&#xff0c;降水少&#xff0c;生态环境十分恶劣。西藏被誉…

Spring Boot集成DeepLearning4j实现图片数字识别

1.什么是DeepLearning4j&#xff1f; DeepLearning4J&#xff08;DL4J&#xff09;是一套基于Java语言的神经网络工具包&#xff0c;可以构建、定型和部署神经网络。DL4J与Hadoop和Spark集成&#xff0c;支持分布式CPU和GPU&#xff0c;为商业环境&#xff08;而非研究工具目的…