成绩评定表课程设计任务书目录一、课程设计目的 (1)二、设计框图 (1)三、实现过程 (2)1、ISE实现过程 (2)1.1建立工程 (2)1.2调试程序 (2)1.3波形仿真 (5)1.4引脚锁定与下载 (8)1.5仿真结果分析 (10)2、MULTISIM实现过程 (10)2.1求驱动方程 (10)2.2画逻辑电路图 (14)2.3逻辑分析仪的仿真 (15)2.4结果分析 (15)四、总结 (16)五、参考书目 (17)一、课程设计目的1了解同步减法计数器工作原理和逻辑功能。
2掌握计数器电路的分析、设计方法及应用。
3.学会正确使用JK 触发器。
二、设计框图状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。
在本课程设计中,四位二进制同步加法计数器用四个CP 下降沿触发的JK 触发器实现,其中有相应的跳变,在状态转换图中可以清晰地显示出来。
具体结构示意框图和状态转换图如下:去除约束项后如下:0110100111001101111011110101010000110010000100000/0/0/0/0/0/0/0/0/0/−−←−−←−−←−−←−−←−→−−→−−→−−→−−→−B:状态转换图四位二进制同步加法计数器CP输入加法计数脉冲C输出进位信号A :结构示意框图三、实现过程1. ISE实现过程1.1建立工程。
File——〉New Project;输入Project Name;即工程名;Project Location,即工程保存的位置;然后next——>……——>next直至finish。
图1.1图1.21.2调试程序。
右击xc95*x1-**,选New Source,再选VHDL Module后,填加文件名——〉next一直到finish。
图1.3图1.4写入程序,保存程序图1.5具体程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity count10 isport(CP,r:in std_logic;q:out std_logic_vector(3 downto 0));end count10;architecture behavioral of count10 issignal count:std_logic_vector(3 downto 0);beginprocess(cp,r)beginif r='0' then count<="0000";elsif cp'event and cp='1' thenif count="0110" thencount<="1001";else count<=count+1;if count="1111" thencount<="0000";elsif count="1001" thencount<="1100";end if;end if;end if;end process;q<=count;end behavioral ;双击Implement Design(或右键Run),运行程序,调试成功显示如下:图1.61.3波形仿真。
回到wei.vhd界面,右键点击wei – Behavioral,选New Source——〉Test Bench WaveForm——〉输入File Name,next ——next〉——〉finish。
图1.7 图1.8图1.9左侧Sources for 栏内选择Behavioral Simulation,选择.tbw文件,打开Processes 下的Xilinx ISE Simulator如图图1.10点击Simulate Behavioral Model(或右键RUN)运行仿真波形,如下:图1.111.4引脚锁定与下载左上侧Source for选项中选择Synthesis/Implementation,左下侧Processes ——〉User Constraints——〉Assign Package Pins分配引脚:Cp-p11,r-p43,q3-p50,q2-p52,q1-p51,q0-p55。
点击保存,OK。
图1.12回到ISE环境:Processes——〉Implement Design——〉Optional Implementation Tools——〉双击Lock Pins锁定引脚:图1.13Processes——〉Implement Design——〉双击Generate Programming File——〉Configure Device(iMPACT),默认JTAG,finishi,we.jed ——〉Open图1.14右键点绿——〉Progaram——〉OK,结束下载。
图1.15图1.16(五)仿真结果分析由仿真波形图可以清楚地看到在一个周期之内,即由小到大,依次完成了四位二进制加法计数的功能。
其中由于缺了0111 1000 1010 1011四个状态,即缺了十进制数中的7 8 10 11四个数,在波形仿真中,在这几个状态处发生跳变,即由0110跳到1001,再由1001直接跳回到1100,即完成一个周期的计数,不断循环往复。
2. Multism实现过程2.1求驱动方程相关结构示意框图和状态转换图见上(二)所示步骤。
选择四个时钟脉冲下降沿触发的JK 触发器,因要使用同步电路,所以时钟方程应该为CP CP CP CP CP ====3210(1)求状态方程由所示状态图可直接画出如图2.1所示电路次态13+n Q 12+n Q 11+n Q 10+n Q 的卡诺图,再分解开便可以得到如图 2.2所示各触发器的卡诺图。
QQ n n 01.QQ n n2300 01 11 10 00 0001 0010 0100 0011 01 0101 0110 XXXX 1001 11 1101 1110 0000 1111 10XXXX1100XXXXXXXX图2.1次态13+n Q 12+n Q 10+n Q 的卡诺图 将上述卡诺图对应拆成四个卡诺图,分别求出13+n Q 、12+n Q 、11+n Q 、10+n Q 表达式如下所示:(a) 13+n Q 的卡诺图(b) 12+n Q 的卡诺图(c )11+n Q 的卡诺图(d )10+n Q 的卡诺图图2.2 各触发器的卡诺图(1)根据卡诺图进行相应化简即得到输出方程和状态方程,如下:QQ QQQQQQQ Q Q QQQ Q QQQ Q Q QQQ Q Q Q QQ Q QQ QQQQ Q C n n n n n n n n nn n n n n nn n nn nn n n n n n n n n n nn n n n n 010132123112312330131231312130121)()()()()(+=+++=++++=++==++++(2)求驱动方程由于JK 触发器的特性方程为n n n Q K Q J Q +=+1用状态方程与特性方程做比较,可得对应驱动方程,如下:1)(0233212301031201331332013123===+====+===K J Q Q Q Q Q Q K QQ Q J QQ QK QQ Q QQQ Q Q J QQ K Q Q J n n n nn nn nnn n nn n n n n n n n n nnn2、2画逻辑电路图根据所选用的触发器和时钟方程、输出方程、驱动方程,便可以画出如图2.3所示的逻辑电路图。
图2.3 逻辑电路图2.3逻辑分析仪的仿真图2.4逻辑分析仪的仿真将无效状态0111 1000 1010 1011分别代入输出方程与状态方程进行计算,结果如下:01001011111110101101100001110/0/0/1/−→−−→−−→−−→−可见在CP 状态下都能回到有效状态,电路能够自启动。
2.4结果分析Multism 是一种虚拟仪器,可以用来验证电路的设计的正确性。
根据相关计算,得出时序电路的时钟方程、状态方程、驱动方程,从而选择合适触发器来连接实现。
本设计中,选用四个时钟脉冲下降沿触发的JK 触发器来实现四位二进制加法计数器。
逻辑电路图中,四个小红灯即为显示器,从右到左显示时序图中的十二种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计数目的。
由于其中缺了0111 1000 1010 1011四种状态,所以在计数过程中会发生跳变,即先从0110跳到1001,再由1001直接跳回到1100,周而复始。
逻辑分析仪类似于ISE环境下的波形仿真,是对计数器的另一种直观的描述。
其中,高电平表示“1”,低电平表示“0”,也可以对计数器的功能进行测试及检验。
四、总结在经过短暂的几天的数电课设中,我收获颇多。
从中了解到了对于该门课程自己学习中的不足之处,并且在几天的实践当中弥补了不少缺陷。
总的来说,课设的时间非常的充足,难度也很适中,可以说只要有细心和耐心一系列的问题都是可以克服的。
在进行数字电路设计过程当中,尤其在使用Multism进行逻辑电路的连接与分析时,分析解决问题的能力就更为重要。
要在复杂的电子器件和密密麻麻的连线中找出头绪来,有时候并不是一件容易的事情。
但是往往这样的问题就出在计算上,尤其是在化简卡诺图时,务必小心谨慎,一个字符写错或者漏掉一些信息,相应得出的驱动方程就会有天壤之别,自然逻辑电路就不能实现最初的设计功能。
而且必要的时候,画出时序图来帮自己解决问题,往往会起不错的效果。
我们需要做到的就是不断发现问题、分析问题从而解决问题。
例如这次在设计过程中,我的题目是缺少0111 1000 1010 1011在Multism中连接完成后点开逻辑分析仪,发现原本1001应该跳到1100,结果1001跳到了1110,分析得出第三路原本0没有跳变,而实际结果却发生了跳变,所以问题应该发生在第三路上。
经过多次的计算,确认计算结果无误后,检查接线图从而发现了问题,修正后完成了设计要求。
在解决问题的过程中,经过对问题的分析思考,锻炼了我独立思考解决问题的能力。
可以说这次课设对个人有相当积极的意义。
在学习过《数字电路技术基础简明教程》之后,我已经算是掌握了一定的数字电路设计的基础以及相应的分析方法、实践能力以及自学能力。