教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

EDA计数器实验报告

来源:网络收集 时间:2026-05-01
导读: EDA计数器实验报告 一、 实验目的: 1、 深刻理解VHDL语言元件例化的方法。 2、 掌握计数器的设计原理以及设计方法。 3、 结合以前学过的数码管扫描知识完成计数器显示学号后三位。 二、 实验原理: 计数器是可以统计时钟脉冲次数的时序器件,为了使计数器可

EDA计数器实验报告

一、 实验目的:

1、 深刻理解VHDL语言元件例化的方法。

2、 掌握计数器的设计原理以及设计方法。

3、 结合以前学过的数码管扫描知识完成计数器显示学号后三位。

二、 实验原理:

计数器是可以统计时钟脉冲次数的时序器件,为了使计数器可以显示学号后三位,采用级联的形式来设计计数器,如十进制的计数器与六进制的计数器级联即构成了六十进制计数器。使用3个带Carry-in和Carry-out模10的计数器的计数输出分别作为计数器个位、十位、百位的输出,设计模108计数器。

实验内容:

本次实验要求设计一个模为自己学号后 3 位的计数器(模108)。各个零部件可以用LPM来定制,而顶层则要使用VHDL语言以元件例化的方法来实现。

1、 VHDL语言的部分代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity exp_cnt108 is

port(clk0,clk,clrn,En:in std_logic;

b,s,g:out std_logic_vector(3 downto 0);

c:out std_logic;

cc:out std_logic;

sb,ss,sg:out std_logic;

ga,gb,gc,gd,ge,gf,gg:out std_logic);

end exp_cnt108;

architecture rtl of exp_cnt108 is

component count4

port(clk:in std_logic;

q:out std_logic_vector(1 downto 0));

end component;

component decoder2_3

port(data:in std_logic_vector(1 downto 0);

eq0,eq1,eq2:out std_logic);

end component;

component mux4_3_1

port( data0x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);

data1x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);

data2x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);

sel : IN STD_LOGIC_VECTOR (1 DOWNTO 0);

result : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));

end component;

component my7449

port(cout:in std_logic_vector(3 downto 0);

a,b,c,d,e,f,g:out std_logic);

end component;

component exp_cnt10

port(Clk,clrn,En,cin:in std_logic;

cq:out std_logic_vector(3 downto 0);

cout:out std_logic);

end component;

signal clr,cin:std_logic;

signal q:std_logic_vector(1 downto 0);

signal coutb,couts,coutg,cout:std_logic_vector(3 downto 0);

signal c1,c2,c3: std_logic;

signal eq0,eq1,eq2: std_logic;

signal qa,qb,qc,qd,qe,qf,qg: std_logic;

begin

u0:count4 port map(clk0,q);

u1:decoder2_3 port map(q,eq0,eq1,eq2);

sb<=eq2;

ss<=eq1;

sg<=eq0;

cin<='1';

u2:exp_cnt10 port map(clk,clrn or clr,En,cin,coutg,c1);

u3:exp_cnt10 port map(clk,clrn or clr,En,c1,couts,c2);

u4:exp_cnt10 port map(clk,clrn or clr,En,c2 and c1,coutb,c3);

b<=coutb;

s<=couts;

g<=coutg;

cc<=c1;

c<=c2;

clr<=coutb(0) and coutg(3);

u5:mux4_3_1 port map(coutg,couts,coutb,q,cout);

u6:my7449 port map(cout,qa,qb,qc,qd,qe,qf,qg);

ga<=qa;

gb<=qb;

gc<=qc;

gd<=qd;

ge<=qe;

gf<=qf;

gg<=qg;

end rtl;

三、 波形仿真及下载验证:

如图所示:

波形仿真:

仿真参数设置:

Entime:45us Grid size:100ns clk:clock→period:10ns 波形说明:

clrn为0,En为0时,保持;

clrn为0,En为1时,计数;

clrn为1时,清零;

由仿真图知,计数到107后从0开始计数。

其中b为输出数据的百位,s为输出数据的十位,g为输出数据的个位,c为模108计数器的进位输出。

结论:

仿真结果与预期一致,正确。

下载验证:

管脚锁定:

clk0: 55 clk:125 En:83 clrn:82 sb、ss、sg:135,133,132 qa,qb,qc,qd,qe,qf,qg:136,137,138,140,141,142,143

下载结果:

当按下83后,数码管显示数字从000开始数,数到108后清零重新计数。

五、 思考题

1、说明任意进制的设计方法。

要是用数码管显示的话,所模的数字有几个数位就用几个模10计数器,利用几个计数器的输出端口的中几个输出端口制定与、非的关系表示出所模数字,构成另一清零端。

不用数码管显示的话,可以直接使用VHDL代码写,将实验内容中模10计数器的代码中的9改成所模数字就可以了。

2、列举 LPM 参数可定制的计数器类型。

1.模任意数字计数器;

2.加法计数减法计数

3.具有计数使能,时钟信号使能、同/异步清零/置位、保持功能

3、如何利用 generic 设计用户参数化计数器?

generic 类属参量是元件实体说明的可选项,放在端口说明前面,为元件实体和外部环境通信的静态信息提供通道。含 generic 的实体可参数化设置元件规模或特性,如端口大小、元件数目、定时特性等。

4、分频器的占空比的设计关键:

在于计数器进位输出电平反转的时机。

5、偶数次分频器与技术次分频器的 VHDL 设计方法主要区别:

偶数次分频器通过计数值来控制输出时钟的高电平或低电平的时间;

奇数次分频器采用加法计数器设计,需要对时钟上升沿和下降沿分别计数,根据两个计 数值控制输出时钟的电平;

6、如何设计 0.5 次分频器?

分频系数为 N - 0.5 的实现可以采用 1 个模 N的减法计数器、1 个异或门、1 个二分频器。

六、 实验心得:

通过此次试验,我对计数器和VHDL语言有了进一步的了解,由于编程不太好,这次代码请教了不少同学,以后一定要加强这方面的学习。

…… 此处隐藏:1343字,全部文档内容请下载后查看。喜欢就下载吧 ……
EDA计数器实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1112365.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)