实验二 4位十进制计数器的设计
更新时间:2024-01-03 22:39:01 阅读量: 教育文库 文档下载
- 实验二小推荐度:
- 相关推荐
实验二 4位十进制计数器的设计
一、实验目的:
1、深入理解信号和变量的区别;
2、深入理解并行语句和顺序语句的区别; 3、深入理解异步和同步的概念; 4、掌握计数器的设计方法;
5、能会看最大系统运行频率和资源使用报告。 二、实验原理:
四位十进制计数器程序A: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity bcd_counter is
end entity;
architecture bev of bcd_counter is begin 0);
process (clk)
variable cnt
: std_logic_vector(3 downto
port ( );
clk : in std_logic; reset : in std_logic; co : out std_logic; q
: out std_logic_vector(3 downto 0)
end bev;
begin
if (rising_edge(clk)) then
if reset = '1' then
cnt := \
else
if cnt < 9 then
cnt := cnt + \ else
cnt := \
co <= '1';
end if;
end if;
end if; q <= cnt;
end process;
四位十进制计数器程序B: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity bcd_counter2 is
port ( );
clk : in std_logic; reset : in std_logic; co : out std_logic; q
: out std_logic_vector(3 downto 0)
end entity;
architecture bev of bcd_counter2 is signal cnt begin
end bev;
四位十进制计数器程序C: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity bcd_counter3 is
process (clk) begin
if (rising_edge(clk)) then
if reset = '1' then
cnt <= \
: std_logic_vector(3 downto 0);
else
if cnt < 9 then
cnt <= cnt + \ else
cnt <= \
co <= '1';
end if;
end if;
end if;
end process; q <= cnt;
port ( );
clk : in std_logic; reset : in std_logic; co : out std_logic; q
: out std_logic_vector(3 downto 0)
end entity;
architecture bev of bcd_counter3 is signal cnt begin
end bev; 三、实验内容:
process (clk) begin
if reset = '1'then cnt <= \
elsif (rising_edge(clk)) then
if cnt < 9 then
: std_logic_vector(3 downto 0);
cnt <= cnt + \ else
cnt <= \
co <= '1';
end if;
end if;
end process; q <= cnt;
1、资源使用情况和最大运行频率: 程序 A B C 使用逻辑单元数 7 7 4 使用寄存器数 4 4 4 最大运行频率(MHz) (slow 1200mV 85C Model) 452.49 452.49 710.73 2、RTL 视图和Technology Map视图
程序A
程序B
程序C
3、testbench文件
程序A
LIBRARY altera ; LIBRARY cycloneiii ; LIBRARY ieee ;
USE altera.altera_primitives_components.all ; USE cycloneiii.cycloneiii_components.all ; USE ieee.std_logic_1164.all ;
ENTITY bcd_counter_tb IS END ;
ARCHITECTURE bcd_counter_tb_arch OF bcd_counter_tb IS SIGNAL q : std_logic_vector (3 downto 0) ; SIGNAL clk : STD_LOGIC := '0' ; SIGNAL co : STD_LOGIC ;
SIGNAL reset : STD_LOGIC := '0' ; COMPONENT bcd_counter PORT (
q : out std_logic_vector (3 downto 0) ; clk : in STD_LOGIC ; co : out STD_LOGIC ; reset : in STD_LOGIC ); END COMPONENT ; BEGIN
DUT : bcd_counter PORT MAP ( q => q , clk => clk , co => co ,
reset => reset ) ; reset <= '1' after 380ns, '0' after 550ns; clk <= not clk after 100ns; END ;
程序B
LIBRARY altera ; LIBRARY cycloneiii ;
LIBRARY ieee ;
USE altera.altera_primitives_components.all ; USE cycloneiii.cycloneiii_components.all ; USE ieee.std_logic_1164.all ; ENTITY bcd_counter2_tb IS END ;
ARCHITECTURE bcd_counter2_tb_arch OF bcd_counter2_tb IS SIGNAL q : std_logic_vector (3 downto 0) ; SIGNAL clk : STD_LOGIC :='0'; SIGNAL co : STD_LOGIC ;
SIGNAL reset : STD_LOGIC :='0' ; COMPONENT bcd_counter2 PORT (
q : out std_logic_vector (3 downto 0) ; clk : in STD_LOGIC ; co : out STD_LOGIC ; reset : in STD_LOGIC ); END COMPONENT ; BEGIN
DUT : bcd_counter2 PORT MAP ( q => q , clk => clk , co => co ,
reset => reset ) ; reset <= '1' after 150ns, '0' after 450ns; clk <= not clk after 100ns;
END ;
程序C
LIBRARY altera ; LIBRARY cycloneiii ; LIBRARY ieee ;
USE altera.altera_primitives_components.all ; USE cycloneiii.cycloneiii_components.all ; USE ieee.std_logic_1164.all ; ENTITY bcd_counter3_tb IS END ;
ARCHITECTURE bcd_counter3_tb_arch OF bcd_counter3_tb IS SIGNAL q : std_logic_vector (3 downto 0) ; SIGNAL clk : STD_LOGIC := '0' ; SIGNAL co : STD_LOGIC ;
SIGNAL reset : STD_LOGIC := '0' ; COMPONENT bcd_counter3 PORT (
q : out std_logic_vector (3 downto 0) ; clk : in STD_LOGIC ; co : out STD_LOGIC ; reset : in STD_LOGIC ); END COMPONENT ; BEGIN
DUT : bcd_counter3 PORT MAP ( q => q , clk => clk , co => co ,
reset => reset ) ; clk <= not clk after 100ns; reset <= '1' after 50ns, '0' after 350ns; END ;
4、最终的时序波形及输出延时
程序A 时序仿真波形
程序A输出延时的波形及时间
延时7ns 程序B 时序仿真波形
程序B输出延时的波形及时间
延时7ns 程序C 时序仿真波形
程序C输出延时的波形及时间
输出延时5ns
5、重新设定clk的时钟频率大于1中的最大工作频率时观察时序仿真波形,并与4中的仿真波形对比,说明差别的原因。
程序A 时序仿真波形
程序B 时序仿真波形
程序C 时序仿真波形
不同的原因: 超出最大工作频率
四、思考题:
1、对比三个程序中的复位实现的异同(同步与异步)? 2、对比三个程序的仿真波形,指出它们的异同,并阐述原因? 3、对比三个程序,阐述信号和变量的区别?
4、对比三个程序,阐述并行语句和顺序语句的区别?
输出延时5ns
5、重新设定clk的时钟频率大于1中的最大工作频率时观察时序仿真波形,并与4中的仿真波形对比,说明差别的原因。
程序A 时序仿真波形
程序B 时序仿真波形
程序C 时序仿真波形
不同的原因: 超出最大工作频率
四、思考题:
1、对比三个程序中的复位实现的异同(同步与异步)? 2、对比三个程序的仿真波形,指出它们的异同,并阐述原因? 3、对比三个程序,阐述信号和变量的区别?
4、对比三个程序,阐述并行语句和顺序语句的区别?
正在阅读:
实验二 4位十进制计数器的设计01-03
填字05-07
青岛版六年制四年级数学第四单元平行卷11-10
裕兴新概念第三册第31课笔记08-14
大学物理习题及答案04-20
英国中世纪以来大学教师收入来源浅析12-26
苏价费136号01-23
公司企业文化战略模式03-18
左宗棠是怎么死的?左宗棠被谁害死的02-07
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 十进制
- 计数器
- 实验
- 设计
- 20XX初中英语演讲稿(4篇).doc
- 化学方程式及化学反应基本类型(二)
- 广东省阳东广雅学校2018-2019学年高二上学期期中考试化学(理)试题 Word版含答案
- 南大校史
- 汇编语言期末试卷A卷及答案
- 八木天线振子市场现状分析及前景预测报告(目录) - 图文
- 护理学院毕业设计任务书(定稿1) - 图文
- 聚合物驱油技术综述
- 20XX年7月入党思想汇报范文:生命的价值
- 浅谈房地产市场营销策略
- 甲级单位编制PU鞋材项目可行性报告(立项可研+贷款+用地+2013案例)设计方案
- 最新2019年人教版七年级语文上册第一次月考试题(有答案)
- 环境生物化学复习思考题 - 图文
- 行政法案例2009
- 高中生物选修三专题4学案
- 2015增值税练习题 - 附答案
- 人教新目标九年级英语全册Unit 10 Youre supposed to shake hands.单元测试题含答案
- 红薯栽培技术
- 生物化学试题及答案(2)
- 扩大内需导向下的流通体系结构优化研究