时间:2022-08-01 09:49:44
摘要:随着芯片的复杂程度越来越高,传统的基于电路图的设计方法已不能胜任,采用诸如VHDL这样的硬件描述语言进行数字电路设计的自顶向下的设计方法――EDA方法应运而生。本文根据CPU所具有的基本功能,用VHDL语言在CPLD上实现CPU功能,并给出源程序。
关键词:VHDL;CPLDCPU
中图分类号:TP312 文献标识码:B文章编号:1009-9166(2008)33(c)-0049-01
CPU因其在各大系统中处于核心位置而在硬件电路设计中备受关注,但因其结构复杂,所涉专业背景多而不被一般人掌握。CPU设计极具代表性,虽发展日新月异,但就其基本原理而言大同小异。VHDL语言是符合IEEE标准的当今世界最为流行的硬件描述语言。下文通过对CPU结构模型的简化,依托综合实验平台,所描述的简易4位CPU,能实现加、减、乘、移位等操作。
一、系统功能设计。精简CPU结构模型,运用Altera公司的MAX7000s系列芯片,依托综合实验板,运用状态机实现了微机指令系统。其指令的分析和执行过程与微机中的CPU相似,能完成简单的算数运算和逻辑运算。
二、设计与实现。(一)、简易4位CPU的基本结构单元。1)程序计数器;2)输入与MAR(Memory Access Register);3)16×8RAM;4)指令寄存器;5)累加器(Accumulator);6)二进制显示(Binary Display);7)B寄存器(B Register);8)输出寄存器(Output Register);9)运算器(Calculater)
(二)、寻址方式介绍。本设计中的4位CPU指令共有8个且可分为两种类型,如下表:
对状态机的主要部分的描述和注释:IF(clk'event AND clk='0')THEN--时钟下降沿触发
IF(run='1')THEN--如果CPU运行信号为
CASE pstate IS
WHEN s0=>nstate
f1:=true;--标志f1置true
IF(breg="00000000")THEN--如果B寄存器值为0
mar
END IF;
WHEN s1=>nstate
IF(breg="00000000")THEN--如果B寄存器值为0
IF(flag=true)THEN --标志为true
pc
flag:=false;--标志flag置false
END IF;--如果不满足条件,是因为正执行多次移位的指令
END IF;--只有移位完才能执行下一条指令,所以程序计数器数值不变
(四)、简易4位CPU功能仿真(加法)。以下是计算10+15+17-20=1C(十六进制加减计算)的VHDL源程序,这部分将写入ROM中:ARCHITECTURE rtl OF ROM16x8_1 IS
BEGIN
dataout
"00011010" WHEN (address="0001" AND ce='0') ELSE
"00011011" WHEN (address="0010" AND ce='0') ELSE
"00101100" WHEN (address="0011" AND ce='0') ELSE
"11100000" WHEN (address="0100" AND ce='0') ELSE
"11110000" WHEN (address="0101" AND ce='0') ELSE
"00010000" WHEN (address="1001" AND ce='0') ELSE
"00010101" WHEN (address="1010" AND ce='0') ELSE
"00010111" WHEn (address="1011" AND ce='0') ELSE
"00100000" WHEN (address="1100" AND ce='0') ELSE
"00000000";
END ARCHITECTURE rtl;
10+15+17-20=1C(十六进制加减计算)仿真波形图如下:
总结:采用自顶向下的设计方法,将复杂的CPU有效划分位状态机模型再进行设计和编程,并用QuartusII软件进行了仿真,最终在MAX7000s综合电路板上验证通过,很好地模拟了CPU的工作过程。但此设计亦有不足之处:1.没有直接实现除法;2.算数没有优先级。另外,综合开发板上的MAX7000s系列性能过低也是制约设计复杂的数字电路障碍之一。
作者单位:北京邮电大学电信工程学院
作者简介:吉祥(1986年-),男,汉族,上海长宁区人,北京邮电大学 电信工程学院2005级电子信息工程本科生。
参考文献:
[1]张亦华,延明.数字电路EDA入门――VHDL程序实例集[M].北京.北京邮电大学出版社.2002
[2]姜立东.VHDL语言程序设计及应用[M].北京:北京邮电大学出版社.2004
[3]付永庆.VHDL语言及应用[M].北京:高等教育出版社.2004
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文