最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

EDA计数器实验报告

来源:动视网 责编:小OO 时间:2025-09-24 07:09:19
文档

EDA计数器实验报告

EDA计数器实验报告一、实验目的:1、深刻理解VHDL语言元件例化的方法。2、掌握计数器的设计原理以及设计方法。3、结合以前学过的数码管扫描知识完成计数器显示学号后三位。二、实验原理:计数器是可以统计时钟脉冲次数的时序器件,为了使计数器可以显示学号后三位,采用级联的形式来设计计数器,如十进制的计数器与六进制的计数器级联即构成了六十进制计数器。使用3个带Carry-in和Carry-out模10的计数器的计数输出分别作为计数器个位、十位、百位的输出,设计模108计数器。实验内容:本次实验要求设计
推荐度:
导读EDA计数器实验报告一、实验目的:1、深刻理解VHDL语言元件例化的方法。2、掌握计数器的设计原理以及设计方法。3、结合以前学过的数码管扫描知识完成计数器显示学号后三位。二、实验原理:计数器是可以统计时钟脉冲次数的时序器件,为了使计数器可以显示学号后三位,采用级联的形式来设计计数器,如十进制的计数器与六进制的计数器级联即构成了六十进制计数器。使用3个带Carry-in和Carry-out模10的计数器的计数输出分别作为计数器个位、十位、百位的输出,设计模108计数器。实验内容:本次实验要求设计
EDA计数器实验报告

一、实验目的:

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

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

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

二、实验原理:

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

    实验内容:

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

1、VHDL语言的部分代码:

library ieee;

use ieee.std_logic_11.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语言有了进一步的了解,由于编程不太好,这次代码请教了不少同学,以后一定要加强这方面的学习。

文档

EDA计数器实验报告

EDA计数器实验报告一、实验目的:1、深刻理解VHDL语言元件例化的方法。2、掌握计数器的设计原理以及设计方法。3、结合以前学过的数码管扫描知识完成计数器显示学号后三位。二、实验原理:计数器是可以统计时钟脉冲次数的时序器件,为了使计数器可以显示学号后三位,采用级联的形式来设计计数器,如十进制的计数器与六进制的计数器级联即构成了六十进制计数器。使用3个带Carry-in和Carry-out模10的计数器的计数输出分别作为计数器个位、十位、百位的输出,设计模108计数器。实验内容:本次实验要求设计
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top