EDA计数器实验报告
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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




