1、 成 绩 评 定 表 学生姓名 班级学号 专 业 通信工程 课程设计 题目 四位二进制减法(缺1011,1100,1101,1110) 评 语 组长签字: 成绩 日期 20 年 月 日 课程设计任务书 学 院 信息科学与工程 专 业 通信工程 学生姓名 班级学号 课程设计题目 四位二进制减法(缺1011,1100,1101,1110) 实践教学要
2、求与任务: 1. 了解教学系统设计方法。 2. 熟悉Xillinx ISE环境。 3. 熟悉Multisim环境。 4. 设计实现四位二进制减法(缺1011,1100,1101,1110)。 工作计划与进度安排: 第一周 熟悉熟悉Xillinx ISE和Multisim环境,练习数字系统设计方法。 第二周 1)在ISE环境中仿真实现四位二进制减法(缺1011,1100,1101,1110),并下载到FPGA目标芯片上。 2)在Multisim环境中仿真实现四位二进制减法(缺1011,1100,1101,1110)并通过虚拟仪器验证其正确性。 指导
3、教师: 201 年 月 日 专业负责人: 201 年 月 日 学院教学副院长: 201 年 月 日 - 20 - 目录 一、课程设计的目的 - 4 - 二、设计的总体框图 - 4 - 三、 实现过程 - 4 - 1、VHDL程序实现 - 4 - 1.1建立工程 - 4 - 1.2VHDL源程序 - 6 - 1.3编译及波形仿真 - 8 - 1.4引脚锁定与下载 - 12 - 2.4仿真结果分析 - 16 - 2.multisim电路实现过程 - 16 - 2.1设计原理 - 16 - 2.2multisim设
4、计电路 - 18 - 2.4仿真结果分析 - 19 - 四、设计的总结与体会 - 20 - 五、参考文献 - 20 - 一、课程设计的目的 1. 了解教学系统设计方法。 2. 熟悉Xillinx ISE环境。 3. 熟悉Multisim环境。 4. 设计实现四位二进制减法(缺1011,1100,1101,1110)。 二、设计的总体框图 由题目可知,无效状态为0011,.0100,0101,0110根据二进制递减计数的规律,可看出状态图如图2.1所示。 1111 /0 1010 /0 1001 /0 1000 /0 0111 /0 0110
5、/0 0101 /1 /0 0000 /0 0001 /0 0010 /0 0011 /0 0100 图1 状态图 三、 实现过程 1、VHDL程序实现 1.1建立工程 File——〉New Project;Project Name:工程名:cn2; Project Location:工程保存的位置F:1003060301\cn);next——>……——>next直至finish。 1.2VHDL源程序 右击xc95
6、108-15pc84,选New Source,再选VHDL Module后,填加文件名cn2——〉next( Port Name中随便填c)——〉finish。 写入程序,保存程序 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity yingzi is PORT (cp,r:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); end yingzi; ARCHITECTURE Beha
7、vioral OF yingzi IS SIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN PROCESS (cp,r) BEGIN if r='0' then count<="1111"; elsiF cp'EVENT AND cp='1' THEN if count="1111" THEN count <="1010"; ELSE count <= count -1;
8、 END IF; end if; END PROCESS; q<=not count; end Behavioral; 1.3编译及波形仿真 双击Implement Design(或右键Run),运行程序,调试成功显示如下 综合通过后,回到vi.vhd界面,建立波形仿真文件进行观察,在ISE软件左侧右键点击cn2 - Behavioral Source,选择New Source,在弹出的对话框中选择Test bench waveform,键入波形图文件名,一路Next直到弹出对话框,将Initial length of te
9、st bench 设为4000以便于观察仿真结果,其他的可以用默认值。点击Finish. 左侧Sources for 栏内选择Behavioral Simulation,选择t1 ,打开Processes下的Xilinx ISE Simulator如图 点击Simulate Behavioral Model(或右键RUN)运行仿真波形,如下 1.4引脚锁定与下载 左上侧Source for选项中选择Synthesis/Implementation,左下侧Processes——〉User Constraints——〉Assign Package Pins
10、分配引脚:Cp-key13,r-sw1,q3-L1,q2-L2,q1-L3,q0-L4。点击保存,OK。 回到ISE :Processes——〉Implement Design——〉Optional Implementation Tools——〉双击Lock Pins锁定引脚. Processes——〉Implement Design——〉双击Generate Programming File——〉Configure Device(iMPACT),默认JTAG,finishi,v1.jed ——〉Open.. 右键点绿——〉Progaram——〉OK,结束下载。(调试
11、时sw向上是1;灯亮为1) 2.4仿真结果分析 下载到芯片上后,根据锁定的引脚,key13为cp,sw向上是0(on);灯亮为0,先将灯复位,全灭,再按key13观察输出状态,摁一下key13减一个数,中间正好缺1011,1100,1101,1110。 2.multisim电路实现过程 2.1设计原理 1.状态图 由题目可知,无效状态为0011,.0100,0101,0110根据二进制递减计数的规律,可看出状态图如图2.1所示。 1111 /0 1010 /0 1001 /0 1000 /0 0111 /0
12、 0110 /0 0101 /1 /0 0000 /0 0001 /0 0010 /0 0011 /0 0100 图2.1 状态图 2.选择触发器 选用由于JK触发器功能齐全、使用灵活,在这里选用4个CP上升沿触发的边沿JK触发器。 3.求时钟方程、状态方程 (1) 求时钟方程 采用同步方案,故取CP0=CP1=CP2=CP3=CP。CP是整个要设计的时序电路的输入时钟脉冲。 (2) 求状态方程 由图2.1所示状态图可直接
13、画出如图2.3所示电路次态的卡诺图,再分解开便可以得到如图2.4所示各触发器的卡诺图。 00 01 11 10 00 1111 0000 0010 0001 01 0011 0100 0010 0101 11 xxxx xxxx 1110 xxxx 10 0111 1000 xxxx 1001 图2.3 次态的卡诺图 根据卡诺图得到: 4.求驱动方程 JK触发器的特性方程为 与特性方程对应,可得 式(1) 2.2mu
14、ltisim设计电路 根据所选用的触发器和时钟方程、输出方程、驱动方程,便可以画出如图2.5所示的逻辑电路图。 图2.2 逻辑电路图 2.3虚拟观察的波形 图2.5 逻辑分析仪 2.4仿真结果分析 将无效状态1011、1100、1101、1110代入式(1)进行计算,结果如下: 1011 1010(有效状态) 1100 0011(有效状态) 1110 1101 1000(有效状态) 可见,所设计的时序电路能够自启动。 四、设计的总结与体会 通过此次课程设计,发现自己还有许多不足之处:在画卡诺图求次态方程的时候不够仔细,导致在multisim虚拟电路结果错误,操作部够熟练,将在以后多多练习和更加仔细做题,进一步提高。 五、参考文献 [1]余孟尝.数字电子技术基础简明教程.第三版.高等教育出版社,2012。6 [2]张丽萍 王向磊.数字逻辑实验指导书.沈阳理工大学信息学院,2012.6






