电子设计自动化实验 实验三 频率计制作
电子设计自动化实验 实验三
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;
关于这段代码做以下两个简单说明
- 内部连接线:简单理解元件例化语句的功能,元件例化就是引入一种连接关系,将预先好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口连接。信号量就是用于内部多元件连接的端口。通过这个端口,两元件相对的映射连接起来。不同的是,这个端口并不区分端口模式(IN/OUT/INOUT/BUFFER),但区分端口的数据类型(STD_LOGIC/STD_LOGIC_VECTOR等)。因此“=>”是连接符号。
- 关于元件个数:在这个实体中共使用了九个元件,即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图示
电子设计自动化实验 实验三 频率计制作相关推荐
- EDA(电子设计自动化) 河北大学实验
EDA(电子设计自动化) 河北大学实验 说明:本文作者为河大新区2016级通信工程学生,河大理工的学弟学妹看到这篇文章就可以放心的抄了 实验一 分频器的设计 要求:掌握时序逻辑电路的设计方法,编写50 ...
- 秒表设计实验报告C语言,电子秒表设计实验报告
<电子秒表设计实验报告>由会员分享,可在线阅读,更多相关<电子秒表设计实验报告(10页珍藏版)>请在人人文库网上搜索. 1.精选文档 -淮阴工学院数字电子技术课程实验期末考核2 ...
- 计算机应用技能实验报告实验五,实验五excel应用—制作学生成绩表
<实验五excel应用-制作学生成绩表>由会员分享,可在线阅读,更多相关<实验五excel应用-制作学生成绩表(7页珍藏版)>请在技术文库上搜索. 1.计算机基础技能训练 8次 ...
- android碎片实验报告,三年级下册科学实验报告模板1篇
三年级下册科学实验报告模板1篇 三年级下册科学实验报告模板1 第一单元 地球和地表的变化 (一).地球结构模型的制作 [实验目的]通过制作地球结构模型使学生更清楚地掌握地球内部的构造. [实验材料]各 ...
- OpenGL南邮计算机图形学实验报告三——实现类似地月系统的两物体环绕移动
OpenGL南邮计算机图形学实验报告三--实现类似地月系统的两物体环绕移动 计算机图形学的新题目要求 OpenGL配置参考: 南邮老前辈wonz哥的OpenGL配置(Shader.h始终不用改).SO ...
- 数字系统实验:三位数码管
一.日志(2019.3.4完成) 1.1.3位数码管实验下载: 在下载时首先要查看芯片的状态,是否与实际芯片相符,通过assignment->device进行查看,由于我的板子是cyclone| ...
- c语言cad实验报告,1.电子线路CAD实验报告实验
电子线路CAD实验报告实验 电子线路CAD实验报告 实验序号:实验一 实验名称:Altium Designer 基本操作 实验日期:2014.2.18 专业班级:电子信息工程 姓名:陈蕾 学号:122 ...
- 计算机网络技术实验报告三,计算机网络第三次实验报告
计算机网络第三次实验报告 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 计算机网络第三次实验报告实验一:网络常用命令的使用一. 实验目 ...
- 实验二 双绞线的制作与应用
实验二 双绞线的制作与应用 一 实验目的1.掌握制作以太网双绞线操作规程. 2.对RJ45水晶头进行568A,568B标准制作,能够使用测线器进行检测.二.实验仪器1.RJ-45头若干: 2.双绞线若 ...
- 计算机网络实验ip数据报转发,计算机网络实验报告三网际协议IP.doc
计算机网络实验报告三网际协议IP 计算机网络实验报告 实验题目:网际协议IP学号:201200301106日期:2014/11/20班级:2012级软工3班姓名: 李凯峰实验目的: 1.掌握IP数据报 ...
最新文章
- 神经网络要从原子抓起:原来白花花的银子才是神经芯片的未来
- VM pow 函数 :undefined reference to `pow'
- 【Android】ActivityManager结构图
- oracle record 遍历,ORACLE中RECORD、VARRAY、TABLE的使用详解
- 怎么看电脑系统是win几_一文看懂arm架构和x86架构有什么区别
- Ubuntu16.04彻底删除MySQL5.7
- 阿里工程师养了只“二哈”,专治讨厌的骚扰电话
- PYTHON设计模式学习(3):Singleton pattern
- 一文快速理解Java反射(详细对比图)
- IDEA的常用配置一键导入及优化内存
- 美国西北大学 计算机工程专业排名,权威首发!2018年USNews美国大学研究生计算机工程专业排名榜单...
- Delphi Sql语句中值的引用
- 智百威收银系统服务器连接不上,收银系统进入不了收银系统怎么办 – 手机爱问...
- 2022年身份证号码信息查询API接口分享
- Data‘ object has no attribute ‘has_isolated_nodes
- 看DeepMind如何用Reinforcement learning玩游戏
- 概率密度函数、概率函数、概率分布函数和积分等的一些概念
- 1413. 逐步求和得到正数的最小值
- 服务器和网页接口,WebApi架构详解,WebApi接口搭建与部署WebApi服务器
- 运行内存那么大怎么清理