简单CPU系统设计与实现 下载本文

北京邮电大学数字电路与逻辑设计实验报告

when \ when others => count<=\ end case; end process; end behave; 5功能说明

(1)通过拨码和按键读入指令, 8个拨码code[7..0]依次对应8位指令内容。拨码状态'1'对应指令'1',拨码状态'0'对应指令0'。可以通过按键控制对应低8位还是高4位的内容。读入过程中LED灯显示读入指令的内容以及指令是低8位还是高4位。按键enable控制读取的指令内容是低8位还是高4位,并控制指令是否录入内存。按键rst用来复位。 在全部指令录入完毕后,按动按键start来依次执行全部录入的指令。

(2)设计的简易CPU系统能够执行存取数据指令(Load、Store ),加法(Add )、减法(Sub)指令,跳转指令(Jmp和Jz),移位指令(SHL 和SHR ),与指令(And),或指令(Or),非指令(Not),空指令等。具体可以参考控制器部分的注释。

根据2.2.3 可以知道要求解两个数的最大公约数的功能仅需要减法指令、跳转指令等的组合便可。

(3)ALU的运算结果存放在Acc中,转化为十进制BCD码,用3个七段数码管显示。 6元器件清单及资源利用情况

北京邮电大学数字电路与逻辑设计实验报告

项目 计算机 下载线 EPM1270T144C5芯片 电源 USB下载接口 MSXⅡ数字逻辑实验开发板 拨码开关 按键 七段数码管 发光二极管 数量 1台 1条 1片 1个 1个 8个 3个 3个 8个

7 故障及问题分析

(1)控制器无法依照时序长生控制信号。仔细查看仿真后,检查控制器发现状态机部分不完整,仅凭操作码就产生相应的控制信号,无法正常运转,有错误。便修改控制器部分,完善状态机。

(2)仿真无误后,下载却发现了问题。进行了调试,但问题仍存在。总状态无法正常跳转。后来发现当初的设计没有按照同步时序设计的思路来进行,而是按异步时序电路来做的。所用时钟资源过多,在所给的电路板上无法实现。之后,通过添加两级防抖来实现向同步时序的转变。总状态在按键的驱动下可以正确跳转。