四位二进制同步加法计数器(缺0011 0100 0101 0110)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩评定表
课程设计任务书
摘要
本次课设题目为四位二进制加法计数器(缺0011 0100 0101 0110)。
首先在QuartusII8.1中建立名为count16的工程,用四位二进制加法计数器的VHDL语言实现了四位二进制加法计数器的仿真波形图,同时进行相关操作,锁定了所需管脚,将其下载到实验箱。
然后,在Multisim软件中,通过选用四个时钟脉冲下降沿触发的JK触发器和同步电路,画出其时序图,卡诺图,建立相关方程,做出相关计算,完成四位二进制加法计数器(缺0011 0100 0101 0110)的驱动方程。在Multisim软件里画出了四位二进制加法计数器的逻辑电路图。经过运行,分析由红绿灯的亮灭顺序及状态,和逻辑分析仪里出现波形图。说明四位二进制加法计数器顺利完成。
关键词:计数器;VHDL语言;仿真;触发器。
目录
一、课程设计目的 (1)
二、设计框图 (1)
三、实现过程 (2)
1、QUARTUS II实现过程 (2)
1.1建立工程 (2)
1.2编译程序 (7)
1.3波形仿真 (10)
1.4 仿真结果分析 (14)
1.5引脚锁定与下载 (14)
2、MULTISIM实现过程 (16)
2.1求驱动方程 (16)
2.2画逻辑电路图 (19)
2.3逻辑分析仪的仿真 (20)
2.4结果分析 (21)
2.5自启动判断 (22)
四、总结 (23)
五、参考书目 (24)
一、课程设计目的
1 了解同步加法计数器工作原理和逻辑功能。
2 掌握计数器电路的分析、设计方法及应用。
3 学会正确使用JK 触发器。
二、设计框图
状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。
在本课程设计中,四位二进制同步加法计数器用四个CP 下降沿触发的JK 触发器实现,其中有相应的跳变,即跳过了0011 0100 0101 0110四个状态,这在状态转换图中可以清晰地显示出来。具体结构示意框图和状态转换图如下:
1010
101111001101111011110
/1
/1000
101101110010000100000/0/0/0/0/0/0/0/0/0/−−−−←−−−−←−−−−←−−−−←−−−−←↓↑−−−→−−−−→−−−−→−−−−→−−−−→−
B:状态转换图
三、实现过程
1.QUARTUSII实现过程
1.1建立工程.
图1 QUARTUS软件的启动界面
(1)点击File –> New Project Wizard创建一个新工程,系统显示如图2。
图2 工程创建向导的启始页
(2)点击Next,为工程选择存储目录、工程名称、顶层实体名等,如图3所示;
(3)点击Next,若目录不存在,系统可能提示创建新目录,如图4所示,点击“是”按钮创建新目录,系统显示如图5所示;
(4)系统提示是否需要加入文件,在此不添加任何文件;
(5)点击Next,进入设备选择对话框,如图6,这里选中实验箱的核心芯片CYCLONE系列FPGA产品EP1C6Q240C8;
(6)点击Next,系统显示如图7,提示是否需要其他EDA工具,这里不选任何其他工具;
(7)点击Next后,系统提示创建工程的各属性总结,若没有错误,点击Finish,工程创建向导将生成一个工程,这时软件界面如图8,在窗口左侧显示出设备型号和该工程的基本信息等。
图3 输入工程名称、存储目录
图4 提示是否创建新文件夹
图5 提示是否添加文件
图6 芯片型号选择
图7 提示是否利用其他EDA设计工具
图8 工程阐述汇总
1.2编译程序
为实现用一个拨码开关控制一个LED亮灭的功能,可用VHDL编写一个程序实现,具体操作过程如下:
(1)点击File->New创建一个设计文件,系统显示如图9;
图9 创建一个设计文件
(2)选择设计文件的类型为VHDL File;
(3)点击OK,系统显示如图10,窗口右侧为VHDL的编辑窗口。
图10 新建的一个VHDL源文件的编辑窗口(4)在编辑窗口中编辑以下程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
entity count16 is
PORT (cp,r:IN STD_LOGIC;
q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );
end count16;
ARCHITECTURE one OF count16 IS
SIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0) ;
BEGIN
PROCESS (cp,r)
BEGIN
IF r='0' then count<="0000";
ELSE IF cp'EVENT AND cp='1' THEN IF count="0010"THEN
count<="0111";
ELSE IF count="1111" THEN
count <="0000";
ELSE count <= count +1;
END IF;
END IF;
END IF;
END IF;
END PROCESS;
q<= count;
END one;
(5)输入程序后,存盘,如图11所示:
图11 存盘