基于VHDL的8位模型计算机的设计与实现(7)

2018-12-20 10:21

理工大学学士学位论文

3. 指令寄存器模块波形仿真

图3.11 指令寄存器功能仿真

波形分析:当IIR=0时,输入操作码,并对其进行判断,当操作码为某个指令时,该指令输出。当执行一条指令时,先把它从主存储器中取到数据寄存器中,然后在传送

27

理工大学学士学位论文

到指令寄存器。如果IR中储存的是操作码LD00111110,ADD11100110,HALT01110110,译码器就将操作码译成相应的操作指令LD,ADD,HALT。在此仿真图中为了清晰其功能把DATA_IN设置成00111110,11100110,01110110,循环,仿真结果如图3.11所示ADD,LD,HALT依次使能,证明此功能模块设计成功。 3.5.6 时钟产生器

说明:用来产生固定频率的方波脉冲。

1.逻辑框图

开始Counter=25000000YCounter归零N时钟发生且上升沿NYCounter=counter+1结束

图3.12 时钟产生器模块程序流程图

说明:用于产生固定频率的方波,时钟周期为0.2s,设置counter值从0到25000000依次按clk周期顺次加一得以实现,如此循环。

28

理工大学学士学位论文

2.VHDL源程序 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY CLK_SOURCE IS PORT(CLK_50M:IN STD_LOGIC; CLK:OUT STD_LOGIC); END ENTITY;

ARCHITECTURE A OF CLK_SOURCE IS SIGNAL CLK_TEMP:STD_LOGIC; BEGIN

CLK<=CLK_TEMP;

PROCESS(CLK_50M,CLK_TEMP)

VARIABLE COUNTER:INTEGER RANGE 0 TO 25000000; BEGIN

IF(COUNTER=25000000)THEN COUNTER:=0;

CLK_TEMP<=NOT CLK_TEMP;

ELSIF(CLK_50M’EVENT AND CLK_50M=’1’)THEN COUNTER:=COUNTER+1; END IF; END PROCESS;

END A;

3.时钟产生器模块仿真波形

29

理工大学学士学位论文

图3.13 时钟产生器功能仿真

波形分析:输入信号CLK_50M时钟频率为50MHZ即周期为20ns,在每个时钟上升沿是counter值自动加1,在达到25000000时归零重计,如此循环产生0.2s的固定周期,显示波形如图3.13所示。 3.5.7 程序计数器模块

说明:用于确定下一条指令的地址。

1.逻辑框图

30

理工大学学士学位论文

开始YCLR=0输出000NCLK=1YIPC=1NYNPC+1输出pc值结束

图3.14 程序计数器模块程序流程图

说明:程序计数器的作用是确定下一条指令的地址。由于模型计算机只有5个字节的机器码,所以程序计数器PC的输出只使用3位,当IPC=0时,计数器保持原状态;IPC=1时,计数器处于计数状态,当时钟信号CLK上升沿到来时,做加1运算。

2.VHDL源程序 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;

31


基于VHDL的8位模型计算机的设计与实现(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:动词ing形式做主语和宾语(课堂设计)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: