目录
近来有空闲,把前几个学期做的实验上传上来。如有错误的地方欢迎大佬批评指正,有更好的方法也期待您的分享~
一、四节拍脉冲发生器
1. 设计四节拍脉冲发生器
把4个D触发器串起来,加一些逻辑控制,系统启动之后,可产生4个等间隔的时序信号T1T4,其中CLK1为时钟信号。
2. 仿真
系统启动之后,clock会产生T1到T4,连续节拍发生电路可由4个D触发器组成(见图11-1),可产生4个等间隔的时序信号T1T4,其中CLK1为时钟信号,由实验台右边的方波信号源clock0提供,clock0具有1Hz50MHz的多种方波信号频率。实验者可根据实验自行选择信号频率。当RST1为低电平时,T1输出为“1”,而T2、T3、T4输出为“0”;当RST1由低电平变为高电平后,T1~T4将在CLK1的输入脉冲作用下,周期性地轮流输出正脉冲,机器进入连续运行状态。
当SETP置0的时候T1、T2、T3、T4节拍信号恒为0。只有当SETP置1的时候,CLK为上升沿,逐步输出T1=1,T2=1,T3=1,T4=1。
二、简易CPU
1. 参考电路图
2. 设计简易CPU
(1)将四节拍脉冲发生器模块化
打开设计的PC文件,点file然后点create/update,然后create symbol files for current file,产生bsf文件,就是四节拍脉冲发生器的模块化原件。
(2)根据参考电路图连接电路
在T1阶段,程序计数器PC给一个clock 的上升沿,它会输出一个计数值(地址)到指令存储器,然后指令存储器拿到地址后译码,取出一条指令,存储器做运算控制的时候,因为没有设置指令系统,运算器的控制端(S0到S3、M、C一共需要6位,这6位写到指令存储器里面去),那么指令存储器可以设置为8bit的,用其中的6位,有两位是空着状态,可以留着以后做扩展。
在T2阶段,可以使用存储器/寄存器,把T2当成clock2,也可以直接在外部输入数据A和数据B。运算结果出来后,用存储器/寄存器都可以进行结果的锁存。
3. 仿真
每当RST1出现一个负脉冲后,仅输出一组T1、T2、T3、T4节拍信号,直到RST1出现下一个负脉冲。
由图可见,由PC来产生ROM的地址仿真结果。