|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Taio 于 2019-11-21 11:30 编辑
$ i/ U2 _/ u* L. B7 ]+ o
" f0 }6 ~& P s |- T
) ?! r d. K2 s1 M5 C5 y! `8 Z% e6 q& S' h
随着半导体技术、集成技术和计算机技术的发展,电子系统的设计方法和手段发生了很大的变化。特别是进入到20世纪90年代以后,EDA(电子设计自动化)技术的发展和普及给电子系统设计带来了巨大的变化。
* Y8 F$ r1 }- f0 T
# I* W4 N8 Y8 I2 _! m6 s Q- c利用EDA工具,采用可编程器件,通过设计芯片实现系统功能,这种方法称为基于芯片的设计方法。这种设计方法可以通过芯片设计实现多种数字逻辑系统功能,增强设计的灵活性,提高了工作效率;同时,基于芯片的设计可以减少芯片的数量,缩小系统体积,降低能源消耗,提高系统的性能和可靠性,已经成为现代电子系统设计的主流。此外,FPGA的集成度不断提高,因此这种设计方法具有研制周期短、设计成本低、设计灵活性高等特点,在现代电子系统中占有越来越重要的地位。计算机已经成为人们生活、工作、学习的好帮手。计算机之所以能得到广泛的应用,是因为它具有强大的、多用途的处理功能,而实施这种功能的就是计算机的核心部件——CPU。本文的研究对象就是基于可编程逻辑器件的系统设计,实现一个简易处理器。在该系统中,能够使用常用的算术和逻辑运算指令,可以完成从取指令到读写数据,再到算术和逻辑运算的功能。
* s! Y9 ?: H; F0 p. Y6 z/ U& f' z$ Y+ D& l* F
硬件描述语言VHDL& q! I j) ?1 q; t
X9 J; c% G, I( PEDA软件的自动化程度高、功能完善、运行速度快、而且操作界面友好,具有良好的数据开放性和互换性。现代EDA技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力。% n1 r. z3 D, m4 r! X o
1 w- k) I5 W$ U/ v9 v, k7 q- E! U
描述硬件电路的功能,信号连接关系及定时关系的语言称为硬件描述语言,它能比电路原理图更有效地表示硬件电路的特性。利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和行为,是集成电路设计方法的一个重要特征。当前国内外普遍使用的主流硬件描述语言只有两种:VHDL和VerilogHDL,此外还有ABEL和AHDL等。这里采用的硬件描述语言是VHDL,设计方法是“自上至下”,即从系统的总体要求出发,逐步将设计内容细化,最后完成系统硬件的整体设计。4 S5 H' |' x' S; z. H
; S3 P* g* p6 K \VHDL语言以ADA语言为基础,由美国国防高级研究计划局(DARPA)开发。IEEE1164标准并使用至今。1996年又加入电路合成标准程序和规格,成为IEEE1076.3标准。美国国防部规定其为官方ASIC设计语言。1995年,中国国家技术监督局出版的《CAD通用技术规范》中,推荐VHDL为我国硬件描述语言的国家标准。与其他HDL语言相比,VHDL具有四大特色:
: y1 V! L% e3 e! u& X
1 d3 n0 T# r, _/ L(1)设计技术齐全、方法灵活、支持广泛VHDL语言可以支持自上至下(Top Down)和基于库(Library-Based)的设计方法,而且还支持同步电路、异步电路和FPGA等电路的设计。目前大多数EDA工具几乎都不同程度的支持VHDL语言。
* _. _+ l6 G% k* m7 a N/ N8 Z( s1 U. c1 S
(2)系统硬件描述能力强6 R8 D* H/ a' {4 H- c
VHDL语言具有多层次描述系统硬件特征的能力,从系统的数学模型直到门级电路。此外,还可以自定义数据类型,极大地方便了编程人员。 Y& E. P# L, a6 C8 f# J
* _2 Y# l- I$ d. m* h5 k(3)VHDL语言可与工艺无关编程' m4 b* @( `7 R0 b. k$ M
在用VHDL语言设计系统硬件时,没有嵌入与工艺有关的信息。这样在工艺更新时,无须修改原设计程序,只要改变相应的映射工具就行了。/ R, Q' v) q; ?( {9 h
( O) o+ \6 w3 ?
(4)VHDL语言标准、规范,易于共享和复用利用VHDL语言设计成果便于复用和交流,可推动VHDL语言的推广和完善。此外,其语法较严格,便于阅读和使用。( u6 J) e# d: W$ B
) E! `% B. T: w8 M在VHDL程序中,通常包含实体(ENTITY)、结构体(ARCHITECTURE)、配置(CONFIGURATION)、包集合(PACKAGE)和库(LIBRARY)5个部分。其中实体和结构体这两个基本结构是必需的,它们可以构成最简单的VHDL程序。4 D5 W) o' }! h8 `3 }0 c0 o
! J) `; e0 M* k; M1 C
可编程逻辑器件是一种数字集成电路的半成品,在它的芯片上按照一定的排列方式集成了大量的门和触发器等基本逻辑元件,使用者可以利用某种开发工具对它进行加工,等于把片内的元件连接起来,使它完成某个逻辑电路或系统功能,成为一个可以在实际电子系统中使用的专用集成电路。: K2 N5 Y9 T/ f. [& X+ F
R3 ^4 B8 L7 C2 l; M$ \
常用的EDA工具软件有:ALTEra公司的MAX+PLUSII和QUARTus,Xilinx公司的Foundation,MontorGraphics公司的QuickVHDL等,这里采用比较常用的Altera公司的MAX+PLUSII,FPGA亦选用该公司的产品。5 `% g, F% l3 ^, Z4 [9 S. q8 k& X
8 V) b ?, i# a4 n4 i5 p n简易处理器的设计
$ V/ u' M! Z- ? i0 x; c3 h: ]: Z3 `
本文设计的是基于可编程逻辑器件FPGA的一个简易化中央处理器系统,具有这样一些功能:首先设计系统的复位开关RESET,对系统各关键部分进行复位清零;其次是系统各部分能够在时钟脉冲的作用下,按照一定的时序执行相应操作。按照顶层设计的结构和设计的总体要求,系统的基本组成部分有时钟分频器、控制器、程序计数器、地址寄存器、累加器、存储器、辅助寄存器和输出寄存器等。
1 t/ I; Z& l. G
. y* h `" X$ M7 b* r* Z
% C- w) o& c0 Q+ \! ^7 |) n& {
图1 简易处理器结构图1 Q* w0 E6 v* X b; q: _) ~; g2 q7 A6 \
* ~( B9 P" p" c( r
其中,存储器模块是本系统的指令代码和数据的存放空间,是系统设计的重要组成部分。它的存储容量是256×8位,地址编码是从00000000到11111111。
: b( Q8 m/ i$ T. W1 F( F
5 N6 s1 R( x! z' C% r2 b. K" ^; I# D这里设计了这样几条指令,加法、减法、取反、同或、异或、左移和右移等。每条指令代码为16位,高八位为操作码场,低八位为操作数场,这样一条指令占两个存储单元,所以程序计数器工作时,每来一次CP脉冲,模块内部的计数值加二。数据存储器存放指令执行过程中的相关数据,例如0C0H-0C2H单元存放的数据如表1所示。
9 u3 @+ W* a/ f# u# l' z
; M$ [3 h3 \8 x) m
0 o7 K2 J4 w, r( e" _表1 存储器中数据分配表
9 m8 k# l8 J8 _' Q0 ^6 D2 i. e) B% L3 |& L L8 u1 b
系统的整体工作流程可以描述为:(1)通过时钟分频器将系统的外部时钟分频成系统内部所要求的时钟标准;(2)控制器根据系统时钟,控制各模块统一工作;(3)程序计数器记录指令 执行流程;(4)地址寄存器存放指令地址,以便在下一个时钟到来时输出给下一级;(5)根据指令地址,在存储器中找到指令的操作代码;(6)在存储器中寻找指令操作过程中用到的数据,并把它们送给累加器或辅助寄存器;(7)根据指令操作码控制指令进行运算;(8)控制器控制输出操作结果。一些指令的仿真波形如图2和图3所示。图2将数据存储器中的两个数据05H和09H相加,结果为0EH;图3是将操作数05H取反,结果为FAH。
1 E& P8 Z6 P% ^- z- q' x$ E4 m# e' ?( J' e
* g* |1 {. I w7 ^$ i2 B( n2 C4 `图2 加法指令仿真波形' H4 l, Y7 l, M1 e
( l1 v b5 L+ C6 S
% L2 a) e& H6 m图3 取反指令仿真波形# F$ e* j2 Q. E) Q* {% x
" m# n$ `7 X" {* B# e+ I% ^
结论& u M1 }7 G/ g I
, t' w8 k& D8 n. R
系统级芯片设计是电子信息整机和集成电路产品设计相结合的完美体现。开展系统级芯片设计工作有利于摆脱电子信息产品设计与集成电路芯片设计相脱节的局面,21世纪将会是EDA技术全面发展壮大的时代。
8 |' c. K( F' |
$ K& _& b& o* U本文利用硬件描述语言VHDL设计了具有简单运算功能的处理器系统。虽然这只是一个简易化CPU,但系统的设计过程和设计思想有利于今后的进一步应用.6 o6 ?- O: ?4 z
7 D2 B& p- d. I! M
|
|