《四位二进制同步加法计数器.docx》由会员分享,可在线阅读,更多相关《四位二进制同步加法计数器.docx(30页珍藏版)》请在三一办公上搜索。
1、成绩评定表学生姓名XXX班级学号XXXXXXXX专业通信工程课程设计题目四位二进制计数器评语组长签字:成绩日期20 年 月曰沈阳理工大学课程设计任务书学院信息科学与工程专业通信工程学生姓名XXX班级学号XXXXXXXXX课程设计题目四位二进制同步加法计数器(缺0011 0100 0101 0110)实践教学要求与任务:1. 了解数字系统设计方法。2. 熟悉Quartus II仿真环境及VHDL下载。3. 熟悉Multisim仿真环境。4. 设计实现四位二进制同步加法计数器(缺0011 0100 0101 0110)工作计划与进度安排:第一周 熟悉Multisim环境及Quartus II环境,
2、练习数字系统设计方法, 包括采用触发器设计和超高速硬件描述语言设计,体会自上而 下、自下而上设计方法的优缺点。第二周 1.在Quartus II环境中仿真实现四位二进制同步加法计数器 (缺 0011 0100 0101 0110)。2.在Multisim环境中仿真实现四位二进制同步减法计数器, (缺0011 0100 0101 0110),并通过虚拟仪器验证其正确性。指导教师:201年 月 日专业负责人:201 年 月曰学院教学副院长:201 年 月曰摘要本次课设题目为四位二进制加法计数器(缺0011 0100 0101 0110)。首先在QuartusII8.1中建立名为count16的工程
3、,用四位二进制加法计数 器的VHDL语言实现了四位二进制加法计数器的仿真波形图,同时进行相关操作, 锁定了所需管脚,将其下载到实验箱。然后,在Multisim软件中,通过选用四个时钟脉冲下降沿触发的JK触发器 和同步电路,画出其时序图,卡诺图,建立相关方程,做出相关计算,完成四位 二进制加法计数器(缺0011 0100 0101 0110)的驱动方程。在Multisim软件 里画出了四位二进制加法计数器的逻辑电路图。经过运行,分析由红绿灯的亮灭 顺序及状态,和逻辑分析仪里出现波形图。说明四位二进制加法计数器顺利完成。关键词:计数器;VHDL语言;仿真;触发器。22.23五、参考书目24沈阳理工
4、大学目录一、课程设计目的1二、设计框图1三、实现过程21、QUARTUSII 实现过程21.1建立工程21.2编译程序71.3波形仿真101.4仿真结果分析141.5引脚锁定与下载142、MULTISIM 实现过程162.1求驱动方程162.2画逻辑电路图192.3逻辑分析仪的仿真202.4结果分析212.5自启动判断总结一、课程设计目的1了解同步加法计数器工作原理和逻辑功能。2掌握计数器电路的分析、设计方法及应用。3学会正确使用JK触发器。二、设计框图状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用 触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。在本
5、课程设计中,四位二进制同步加法计数器用四个CP下降沿触发的JK触 发器实现,其中有相应的跳变,即跳过了 0011 0100 01010110四个状态,这在 状态转换图中可以清晰地显示出来。具体结构示意框图和状态转换图如下:CP 1四位二进制同步加法计数器输入加法计数脉输出信号A:结构示意框图0000N0001N 0010N 0111N 1011N 1000个/1I/01111巧111 巧1101巧110 巧1011巧1010B:状态转换图三、实现过程1.QUARTUSII实现过程 1.1建立工程.图1 QUARTUS软件的启动界面(1) 点击File - New Project Wizard创
6、建一个新工程,系统显示如图2。图2工程创建向导的启始页(2)点击Next,为工程选择存储目录、工程名称、顶层实体名等,如图3 所示;(3)点击Next,若目录不存在,系统可能提示创建新目录,如图4所示, 点击“是”按钮创建新目录,系统显示如图5所示;(4)系统提示是否需要加入文件,在此不添加任何文件;(5)点击Next,进入设备选择对话框,如图6,这里选中实验箱的核心芯 片 CYCLONE 系列 FPGA 产品 EP1C6Q240C8;(6)点击Next,系统显示如图7,提示是否需要其他EDA工具,这里不选 任何其他工具;(7)点击Next后,系统提示创建工程的各属性总结,若没有错误,点击 F
7、inish,工程创建向导将生成一个工程,这时软件界面如图8,在窗口左侧显示 出设备型号和该工程的基本信息等。图3输入工程名称、存储目录图4提示是否创建新文件夹图5提示是否添加文件图7提示是否利用其他EDA设计工具图8工程阐述汇总1.2编译程序为实现用一个拨码开关控制一个LED亮灭的功能,可用VHDL编写一个程序 实现,具体操作过程如下:(1)点击File-New创建一个设计文件,系统显示如图9;图9创建一个设计文件(2)选择设计文件的类型为VHDL File;(3)点击OK,系统显示如图10,窗口右侧为VHDL的编辑窗口。图10新建的一个VHDL源文件的编辑窗口(4) 在编辑窗口中编辑以下程序
8、:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity count16 isPORT (cp,r:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);end count16;ARCHITECTURE one OF count16 ISSIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS (cp,r)BEGINIF r=0 then count=0000;ELSE IF cpEVENT AND
9、 cp=1 THENIF count=0010THEN count=0111;ELSE IF count=1111 THEN count =0000;ELSE count = count +1;END IF;END IF;END IF;END IF;END PROCESS;qStart Compilation编译该文件,系统将开始编译, 结束后,给出提示信息和编译结果,如图12所示:图12编译结果成功1.3波形仿真(1)建立时序仿真文件,如图1-13所示,选择“Vector Waveform File”,出 现图13的界面,在Name空白处击右键,Insert Insert Node or B
10、us。| Quartus U - c:/altera/81/quartus/countl6/countl6 - countl6 - Waveforml.vwf| | 曲 | M |File Edit View Project Assignments Processing Tools Window Help| _ | 5 |R| Q 3 昼 X 昭略 |count16| 威=,7 郎枝 | 姓 | A | 0 | | 笆 & | (耕 countl G.vhdaskB,/ 日 A Compile Ilesi gn A An:dlysi s N STi+hesi sA Fitter (Place
11、& Route)A Assembler (Generate programming files)A Classic Timing Analysis A EDA Netlist WriterProgram Device (Open Programmer)AR囹rfe英o一M一炬已zxt枣涟X2一限Master Time Bar:NameType |MessageInfo: tco from clock cp to destination pin q0 through register count0 is 8.666 nsInfo: Parallel conilation was enabled
12、but no parallel operations were performedInfo: Quartus II Classic Timing Analyzer was successful. 0 errors, 1 warningInfo: Quartus II Full Compilation was successful. 0 errors, 4 warnings图14点击Name后的界面 在图14中单击Node Finder.图15设置对应端口在图15中单击 W,再单击艾 一OK-OK。如图16所示3仔口伽昌Hierarchy 昏 Files | / Design Units |sk
13、sow: |Compilati oni Quartos II - c:/altera/81/quartus/countl6/countl6 - countl6 - Waveforml.wvf*3 File Edit View Project Assignments Processing Tools Window HelpntityLogic CellsLC Register:佥 Cyclone: EF1C6Q240C8vhd countl6 跑4 (4:l4整 countl6.vhdaskB,/曰 Compilt! Llnsign小A An:dlysi s N STi+hesi s1- Fit
14、ter (Place & Route) Assembler (Generate programming files) A Classic Timing AnalysisB- EDA ffetlist WriterProgram Device (Open Programmer)Type Message一.vjJJISMaster Time Bar: |15.65 nsPointer: |100 psInterval:-15.55 nsStart: |0 psEnd:0 psInfo: Ended Full Cospilation at Sun Jun 09 23:52:24 2013 4=,国标
15、准时间Warning: Creation of Node or Bus q0 failed. Duplicatednodes are not inserted. Node or busWarning: Creation of Node or Bus ql failed. Duplicatednodes are not inserted. Node or busWarning: Creation of Node or Bus q2 failed. Duplicatednodes are not inserted. Node or busWarning: Creation of Node or B
16、us q3 failed. Duplicatednodes are not inserted. Node or busnamenamenamenameq0 already exists.ql already exists.q2 already exists.q3 already exists. System (8 X Processing (63) Extra Info Info (59) Warning (4)Critical Warning_ Error _Suppressed (5)A Flag /图16建立仿真界面图17仿真存盘仿真文件存盘时,文件名字必须与顶层文件同名,即count1
17、6,默认即可。AR图18仿真工具栏图18是为仿真输入赋值的。如想赋值1,单击1(2)单击菜单进行仿真Fru i: e e e i ngTools Window HelpStop FrceesingCtrl+Shift+C! Etart Compilati un校AxL:alyze Ciirrent FileCtrl+LStartUfidate Memcry Ini ti :ali zati un FileCompilati un ReportCtrl+RStart. Compilation and. SimulationCtrl+Shi t+KGenerate Fijtlcti nnal Si
18、mulati on Netli st岛.Simill at i on DebiigSimulati on ReportStart S i mill at i onCtrl+ICtrl+Shit+RComp i1er TuulSxnnil at or ToolCl as sic T i m i ng AxL:=ilyz.er TuulPower Fl ay F uw er AxL:=ilyEer Tuul图19点击进行仿真仿真结果如图20。牛 Quartos II - c:/altera/81/quartus/countl6/countl6 - countl6 - Simulation Repo
19、rt - Simulation Waveforms心 File Edit View Project Assignments Processing Tools Window HelpProject NavigatorEntityLogic CellsLC Register;心 Cyclone: EP1C6Q240C8:懿 count止蜀4 (4)4感 countl G.vhd| 好 Compilation Report - Flow Summary| 包 Waveforml.vwf| 号 Simulation Report - Simulation Wav.身骨 Simulation Repor
20、t昌昏 Legal Notice身串 Flow Summary曲 Flow Settings日 SimulatorSimulation WaveformsSimulation mode: Timing昌圈 INI Usage 昌.力 Messageslow: Compilation二TaskB,/ 日 A Cumpile IiesignA An:dlysi s N Swi+hesi sA Fitter (Place & Route). Assembler (Generate programming files)A Classic Timing AnalysisA EDA Netlist Wri
21、terProgram Device (Open Programmer)Casks心Hierarchy | 固 Files | rfP Design Units SummarySettingsSimulation Waveform 国 昌口 Simulation CoverageX莞E昭 0 Q 昌 昭电 pc 11 countl 6 | 俄 y |0 | ft.。| 图20仿真波形1.4仿真结果分析由仿真波形图20可以清楚地看到在一个周期之内,即由小到大,依次完成 了四位二进制加法计数的功能。其中由于缺了 0011 0100 0101 0110四个状态, 即缺了十进制数中的3 4 5 6四个数
22、,在波形仿真中,在这几个状态处发生跳变, 即由0010跳到0111,再由0000直接跳回到1111,即完成一个周期的计数,不 断循环往复。1.5引脚锁定与下载左上侧Assignment选项中选Pins,下侧Location分配引脚:cp-PIN_28 q3-PIN 114 q2-PIN 115 q2-PIN 116 q1-PIN 117 r-PIN 58。图21锁定管脚左键点击 ToolsProgrammer图22下载点击start,运行到100%,及下载成功。2. Multisim实现过程2.1求驱动方程相关结构示意框图和状态转换图见上(二)所示步骤。选择四个时钟脉冲下 降沿触发的JK触发器
23、,因要使用同步电路,所以时钟方程应该为 CP= CP1= CP2 = CP3 = CP(1)求状态方程由所示状态图可直接画出如图23所示电路次态Q n+1 Q;+1 Qn+1 Q n+1的卡诺 图,再分解开便可以得到如图24所示各触发器的卡诺图。 Q Q 0 Q、000111100000010010XXXX011101XXXXXXXX1000XXXX111101111000001111101001101011001011图23次态Qn+1 Qn+1 Qn+1 Q的卡诺图将上述卡诺图对应拆成四个卡诺图,分别求出以+1、以+1、Qn+1 . Q n+1表达式 如下所示:2、Q Q0欤q200011
24、110000X01XX0111100110J00(C)Q n+1的卡诂图Q; Q0q3 Q00011110000X01XX i0X110N0100V0V(d) Q”1的卡诺图0图24各触发器的卡诺图根据卡诺图进行相应化简即得到状态方程,如下:Qn + 13=QnQn + Qn(Qn + Q n + Q n )32_321_ 0 _Q n + 1=Q n (Q nQ n+ Q nQ n ) +(Q n + Q n )Q n223 11 0102Q n + 1=Q nQn +Q nQ n11 010Q n + 1=Qn00(2)求驱动方程由于JK触发器的特性方程为Qn+1 = JQn + KQn用
25、状态方程与特性方程做比较,可得对应驱动方程,如下:K = Qn + Qn + QnJ = Qn(Qn + Qn) 2130K = QnQnJ = K = QnJ0 = K0 = 12.2画逻辑电路图便可以画出如图根据所选用的触发器和时钟方程、输出方程、驱动方程, 25所示的逻辑电路图。图25四位二进制加法计数器2.3逻辑分析仪的仿真图26四位二进制加法计数器逻辑分析仪电期* *是皿处r田图27逻辑分析仪仿真2.4结果分析Multisim是一种虚拟仪器,可以用来验证电路的设计的正确性。根据相关 计算,得出时序电路的时钟方程、状态方程、驱动方程,从而选择合适触发器来 连接实现。本次课程设计中,选用
26、四个时钟脉冲下降沿触发的JK触发器来实现 四位二进制加法计数器。逻辑电路图26中,四个小红灯即为显示器,从左到右 显示时序图中的十二种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计 数目的。由于其中缺了 0011 0100 0101 0110四种状态,如图27逻辑分析仪中可发 现计数过程中发生跳变,即先从0010跳到0111,再由0000直接跳回到1111, 周而复始。逻辑分析仪类似于QUARTUSII环境下的波形仿真,是对计数器的另一 种直观的描述。其中,高电平表示“1”,低电平表示“0”,也可以对计数器的 功能进行测试及检验。2.5自启动判断检查电路能否自启动:把无效状态0011 0
27、100 0101 0110带入输出方程和和 状态方程进行计算,结果如下: 110100113 0100化01013 11100110 1111由此可见,在CP操作下都能回到有效状态,即电路能够自启动。I、总结在本次数字电路课程设计中,我的题目为四位二进制加法计数器(缺0011 0100 0101 0110)。由于是第一次做数字电路的课程设计,对于相关设计过程和 分析方法并不大熟练。但总的来说,这次课设还算完满完成,这对我以后学习 相关的课程以及进行更高层次的数字电路设计都奠定了良好的基础。在设计过程中,出现了各种各样的问题,例如:写程序时,如果思路不够清 晰是很难完成代码的设计的;化简时,由于
28、对卡诺图化简发不够熟练,很容易就 会导致化简错误;用Multisim软件画逻辑电路图时,稍有一点错误就会导致电 路图模拟不出我们要完成的计数器任务。也许是因为我们初次接触这门课的原 因,在我看来,我们本次课设题目老师出的并不是太难,简单,但是,很难完全 做对。首先,我们需要完全掌握好我们所学的书本上的理论知识,因为理论知识 是我们本次课设的基础;其次我们必须学会熟练的运用相关软件,花大量的时间 练习是必要的;最后也是最重要的一点,我们必须谨慎细心,且有足够的耐心, 在面对无数次错误的时候不要气馁,仍以平常心去检查计算,找出错误所在。在学习过数字电路技术基础简明教程之后,我已经算是掌握了一定的数 字电路设计的基础以及相应的分析方法、实践能力以及自学能力。虽然遇到了不 少问题,但是在向老师和同学请教的学习过程中,我又改正了不少错误的认识, 对数字电路的设计与分析方法的掌握也有了一定的提高,我相信这些知识与经验 对以后的学习会有极大的帮助。五参考文献1. 数字电子技术基础简明教程(第三版)2. 潘松,王国栋.VHDL实用教程.电子科技大学出版社,2001.3. 焦素敏数字电子技术基础(第2版) 人民邮电出版社4. 康华光 主编,电子技术基础(数字部分 第五版),高等教育出版社,2008.1。