电子设计自动化实验 实验三

EDA


一.实验名称:综合性实验三、硬件描述语言的层次化设计

二.实验目的:

熟悉 EDA 软件(QuartusII)的硬件描述语言输入设计方法;
掌握 VHDL 语言的层次化设计方法和仿真分析方法;
了解功能仿真、时序仿真和时序参数分析的意义。

三.实验内容:

 采用层次化设计的方法,用 VHDL 语言的元件例化语句写出 4 位十进制频率计的顶 层文件,并分别给出其测频功能和时序仿真分析波形图,并加以分析;**用 EDA 实验箱进行硬件验证,并分析测量结果;建议硬件测试实验电路采用 NO.0 电 路结构,待测信号 F_IN 接 clock0;测频控制时钟 CLK 接 clock2;**用嵌入式逻辑分析仪 SignalTap II 实际监测 4 位十进制频率计中计数器模块和测 频控制器模块在 FPGA 的工作情况(以 F_IN 为逻辑分析仪的工作时钟,触发条件 DIN=0、CLK 上升沿)。**

四.实验原理:

1.测频原理:
  有一个测频控制器,这个测频控制器由一个输入信号和三个输出信号构成。分别是:

1.输入信号:CLKK    --输入一个频率为1Hz的信号用于产生分频信号
2.输出信号:CNT_EN  --通过分频信号得到一个时长为1秒的计数使能信号,用来控制计数器
3.输出信号:LOAD    --对分频信号取反得到一个和计数使能信号相反的置数使能信号,用来控制锁存器
4.输出信号:CLR_CNT --在停止计数期间和置数完成后,产生一个计数器清零信号,清空计数器,以便下次测量

测评控制器原理图
2.频率计原理:
  测频控制器的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT4的ENA使能端进行同步控制。当CNT_EN高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要产生一个锁存信号LOAD,在该信号上升沿时,将计数器在前1秒钟的计数值锁存进各锁存器LTCH4中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下1秒钟的计数操作作准备。
图片

五.实验代码

  用元件例化的方法来实现频率计的功能。需要在频率计代码中调用测评控制器,锁存器,计数器的代码。

1.测频器代码:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;  ENTITY LAB_03 ISPORT (CLK,FSIN : IN STD_LOGIC;OUT1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);OUT2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);OUT3 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);OUT4 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);OUT5 : OUT STD_LOGIC);
END ENTITY LAB_03;ARCHITECTURE bhv OF LAB_03 ISCOMPONENT CNT4                                 --调用计数器模块PORT ( CLK,RST,EN : IN STD_LOGIC     --为便于识别端口名与调用实体相同(可不同)DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC);END COMPONENT;COMPONENT LTCH4                               --调用锁存器模块PORT ( CLK : IN STD_LOGIC;D : IN STD_LOGIC_VECTOR(3 DOWNTO 0);Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT FTCTRL                              --调用测频控制器模块PORT ( CLKK : IN STD_LOGIC;CNT_EN : OUT STD_LOGIC;RST_CNT : OUT STD_LOGIC;LOAD : OUT STD_LOGIC);END COMPONENT;SIGNAL NET1,NET2,NET3 : STD_LOGIC;               --定义若干信号作为内部走线
SIGNAL D1,D2,D3,D4 : STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL DOUT1,DOUT2,DOUT3,DOUT4 : STD_LOGIC_VECTOR(3 DOWNTO 0); --cnt4out
SIGNAL COUT1,COUT2,COUT3 : STD_LOGIC; --cnt4outBEGIN      --需要一个测评控制器,四个计数器,四个锁存器。分别定义每个元件端口映射U1: FTCTRL PORT MAP(CLKK=>CLK,CNT_EN=>NET1,RST_CNT=>NET2,LOAD=>NET3);U2 : CNT4   PORT MAP(CLK=>FSIN,EN=>NET1,RST=>NET2,DOUT=>D1,COUT=>COUT1);U3 : CNT4   PORT MAP(CLK=>COUT1,EN=>NET1,RST=>NET2,DOUT=>D2,COUT=>COUT2);U4 : CNT4   PORT MAP(CLK=>COUT2,EN=>NET1,RST=>NET2,DOUT=>D3,COUT=>COUT3);U5 : CNT4   PORT MAP(CLK=>COUT3,EN=>NET1,RST=>NET2,DOUT=>D4,COUT=>OUT5);U6 : LTCH4  PORT MAP(CLK=>NET3,D=>D1,Q=>OUT1);U7 : LTCH4  PORT MAP(CLK=>NET3,D=>D2,Q=>OUT2);U8 : LTCH4  PORT MAP(CLK=>NET3,D=>D3,Q=>OUT3);U9 : LTCH4  PORT MAP(CLK=>NET3,D=>D4,Q=>OUT4);END ARCHITECTURE bhv;

关于这段代码做以下两个简单说明

  1. 内部连接线:简单理解元件例化语句的功能,元件例化就是引入一种连接关系,将预先好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口连接。信号量就是用于内部多元件连接的端口。通过这个端口,两元件相对的映射连接起来。不同的是,这个端口并不区分端口模式(IN/OUT/INOUT/BUFFER),但区分端口的数据类型(STD_LOGIC/STD_LOGIC_VECTOR等)。因此“=>”是连接符号。
  2. 关于元件个数:在这个实体中共使用了九个元件,即U1~U9。其中计数器模块和锁存器模块都用了4个。所以为了区分,要个每个元件唯一的例化名,即U1~U9。然后再分别说明是哪个元件,并用端口映射去做连接。可用RTL图形观察器去检查连续是否正确。
    U1 : FTCTRL PORT MAP(CLKK=>CLK,CNT_EN=>NET1,RST_CNT=>NET2,LOAD=>NET3);

U1为测评控制器,内部有四个信号。其中CLKK连接端口CLK,剩余三个输出分别连到内部信号端口NET1/2/3,以待其他元件连接即可联通。
RTL图示


附上调用的三个元件的代码

计数器

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT4 ISPORT (CLK,RST,EN : IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC);
END CNT4;
ARCHITECTURE behav OF CNT4 IS
BEGINPROCESS(CLK, RST, EN)VARIABLE Q : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF RST='1' THEN   Q := (OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THEN IF EN='1' THENIF Q <9 THEN Q := Q + 1;ELSE Q := (OTHERS =>'0'); END IF;END IF;END IF;IF Q ="0000" THEN COUT<='1'; ELSE    COUT<='0'; END IF;DOUT <= Q;
END PROCESS;
END behav;

锁存器

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY LTCH4 ISPORT (CLK : IN STD_LOGIC;D : IN STD_LOGIC_VECTOR(3 DOWNTO 0);Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END LTCH4;
ARCHITECTURE bhv OF LTCH4 IS
BEGINPROCESS(CLK,D)BEGINIF CLK'EVENT AND CLK ='1' THEN Q <= D; END IF;END PROCESS;
END bhv;

测评控制器

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY FTCTRL ISPORT(CLKK : IN STD_LOGIC;CNT_EN : OUT STD_LOGIC;RST_CNT : OUT STD_LOGIC;LOAD : OUT STD_LOGIC);
END FTCTRL;
ARCHITECTURE bhv OF FTCTRL ISSIGNAL DIV2CLK : STD_LOGIC;
BEGINPROCESS( CLKK ) BEGINIF CLKK'EVENT AND CLKK = '1' THENDIV2CLK <= NOT DIV2CLK;END IF;END PROCESS;PROCESS( CLKK,DIV2CLK) BEGINIF CLKK='0' AND DIV2CLK='0' THEN RST_CNT <= '1';ELSE RST_CNT <= '0';END IF;END PROCESS;
LOAD <= NOT DIV2CLK;
CNT_EN <= DIV2CLK;
END bhv;

六.SignalTap II图示

电子设计自动化实验 实验三 频率计制作相关推荐

  1. EDA(电子设计自动化) 河北大学实验

    EDA(电子设计自动化) 河北大学实验 说明:本文作者为河大新区2016级通信工程学生,河大理工的学弟学妹看到这篇文章就可以放心的抄了 实验一 分频器的设计 要求:掌握时序逻辑电路的设计方法,编写50 ...

  2. 秒表设计实验报告C语言,电子秒表设计实验报告

    <电子秒表设计实验报告>由会员分享,可在线阅读,更多相关<电子秒表设计实验报告(10页珍藏版)>请在人人文库网上搜索. 1.精选文档 -淮阴工学院数字电子技术课程实验期末考核2 ...

  3. 计算机应用技能实验报告实验五,实验五excel应用—制作学生成绩表

    <实验五excel应用-制作学生成绩表>由会员分享,可在线阅读,更多相关<实验五excel应用-制作学生成绩表(7页珍藏版)>请在技术文库上搜索. 1.计算机基础技能训练 8次 ...

  4. android碎片实验报告,三年级下册科学实验报告模板1篇

    三年级下册科学实验报告模板1篇 三年级下册科学实验报告模板1 第一单元 地球和地表的变化 (一).地球结构模型的制作 [实验目的]通过制作地球结构模型使学生更清楚地掌握地球内部的构造. [实验材料]各 ...

  5. OpenGL南邮计算机图形学实验报告三——实现类似地月系统的两物体环绕移动

    OpenGL南邮计算机图形学实验报告三--实现类似地月系统的两物体环绕移动 计算机图形学的新题目要求 OpenGL配置参考: 南邮老前辈wonz哥的OpenGL配置(Shader.h始终不用改).SO ...

  6. 数字系统实验:三位数码管

    一.日志(2019.3.4完成) 1.1.3位数码管实验下载: 在下载时首先要查看芯片的状态,是否与实际芯片相符,通过assignment->device进行查看,由于我的板子是cyclone| ...

  7. c语言cad实验报告,1.电子线路CAD实验报告实验

    电子线路CAD实验报告实验 电子线路CAD实验报告 实验序号:实验一 实验名称:Altium Designer 基本操作 实验日期:2014.2.18 专业班级:电子信息工程 姓名:陈蕾 学号:122 ...

  8. 计算机网络技术实验报告三,计算机网络第三次实验报告

    计算机网络第三次实验报告 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 计算机网络第三次实验报告实验一:网络常用命令的使用一. 实验目 ...

  9. 实验二 双绞线的制作与应用

    实验二 双绞线的制作与应用 一 实验目的1.掌握制作以太网双绞线操作规程. 2.对RJ45水晶头进行568A,568B标准制作,能够使用测线器进行检测.二.实验仪器1.RJ-45头若干: 2.双绞线若 ...

  10. 计算机网络实验ip数据报转发,计算机网络实验报告三网际协议IP.doc

    计算机网络实验报告三网际协议IP 计算机网络实验报告 实验题目:网际协议IP学号:201200301106日期:2014/11/20班级:2012级软工3班姓名: 李凯峰实验目的: 1.掌握IP数据报 ...

最新文章

  1. 神经网络要从原子抓起:原来白花花的银子才是神经芯片的未来
  2. VM pow 函数 :undefined reference to `pow'
  3. 【Android】ActivityManager结构图
  4. oracle record 遍历,ORACLE中RECORD、VARRAY、TABLE的使用详解
  5. 怎么看电脑系统是win几_一文看懂arm架构和x86架构有什么区别
  6. Ubuntu16.04彻底删除MySQL5.7
  7. 阿里工程师养了只“二哈”,专治讨厌的骚扰电话
  8. PYTHON设计模式学习(3):Singleton pattern
  9. 一文快速理解Java反射(详细对比图)
  10. IDEA的常用配置一键导入及优化内存
  11. 美国西北大学 计算机工程专业排名,权威首发!2018年USNews美国大学研究生计算机工程专业排名榜单...
  12. Delphi Sql语句中值的引用
  13. 智百威收银系统服务器连接不上,收银系统进入不了收银系统怎么办 – 手机爱问...
  14. 2022年身份证号码信息查询API接口分享
  15. Data‘ object has no attribute ‘has_isolated_nodes
  16. 看DeepMind如何用Reinforcement learning玩游戏
  17. 概率密度函数、概率函数、概率分布函数和积分等的一些概念
  18. 1413. 逐步求和得到正数的最小值
  19. 服务器和网页接口,WebApi架构详解,WebApi接口搭建与部署WebApi服务器
  20. 运行内存那么大怎么清理

热门文章

  1. 工商银行的计算机网络布线,工商银行利用计算机网络开展了哪些业务?
  2. 计算机主板故障检测装置,计算机主板故障检测装置制造方法及图纸
  3. 卡巴斯基密码管理器新版面世,再也不必担心账户安全
  4. 基于Struts2的网上书城(仿当当网)系统设计与实现
  5. 超星PDG格式转换成PDF格式及其它格式
  6. php有递归算法,PHP递归算法详解
  7. c语言二进制强制转十六进制,C语言二进制转十六进制问题
  8. Java、十六进制转二进制
  9. SAP在阿里云白皮书-第二章 阿里云概念解析
  10. PS滤镜-Topaz Photoshop Plugins Bundle