第4卷第3期大 连 民 族 学 院 学 报Vol.4 No.3 2002年7月 JOURNAL OF DALIAN NATIONALITIES UNIVERSITY Jul. 2002
用VHDL语言实现ALU的
算术运算单元
李飞,尹飞,刘兴成,陈兴文
(大连民族学院 机电信息工程系,辽宁 大连开发区 116600)
摘要:介绍了利用可编程逻辑器件实现高速8位ALU的算术运算单元的设计方法,并
且给出了算术运算单元的顶层原理图和用VHDL语言编写其子模块的程序.
关键词:算术逻辑存储单元;VHDL语言;CPLD
中图分类号:TP368.1 文献标识码:A 文章编号:1009-315X(2002)03-0009-03
随着CPLD/FPGA技术的迅猛发展,在一些实验和应用场合,用可编程逻辑器件代替
普通的集成电路已成为一种必然趋势.它具有高速、灵活、稳定、开发周期短等特点,可方便、快捷的应用到系统的设计当中.由于算术逻辑存储单元(ALU)在运算中对系统性能的要求很高,而采用普通的中小规模集成电路不但系统庞大,而且稳定性差,因此用可编程逻辑器件来实现是一种很好的方案.本文作者用VHDL语言编写其程序,以一个8位二进制加法器为核心,实现了算术运算单元的设计,若时钟频率为100MHz,运算速度为100ns左右.
1 总体设计
本算术单元可实现8位二进制数的加、减、
乘、除运算. 其核心是一个8位二进制加法
器.总控制器输出运算选择信号,控制乘法控
制器、除法控制器和加减选择器,运算数据通
而成.其结构过乘法和除法控制器输入加减选
择器,继而进入加法器,作加法运算,结果锁
存到锁存器. 至此,加、减、乘、除的运算完
毕. 原理框图如图1 所示. 图1 原理框图
10 大连民族学院学报第4卷2 模块设计
图2 顶层原理图
传统的设计方法一般是自底向上设计,而本设计采用自顶向下(TOP-TO-DOWN)的设计方法. 模块顶层如图2所示,其核心是一个8位二进制加法器.CLR为总控制器的异步清零端. PPA、PPS、PPM、PPD为4个运算(依次是加、减、乘、除)的选通信号输出端,A,B作为运算数据输入端.PPM、PPD分别连到乘、除法控制器的选通端. PPA、PPM 通过或门连到加减选择器的加法选通端,PPS、PPD通过或门连到减法选通端.
作加减运算时,乘、除法控制器不被选通,加减选择器选通,作出加或减的选择,并输出相应数据到加法器运算,输出数据锁存到锁存器. 当作乘、除运算时,总控制器在输出乘、除选通信号的同时,MCK、DCK也相应输出8个时钟脉冲. 此时,乘或除法控制器和加减选择器同时选通,乘法和加法配合,除法和减法配合. 在8个时钟脉冲的作用下,加法器分别作8次不同的加法运算,最后完成乘或除的运算,并把结果锁存到各自的锁存器.因为,乘法的结果是16位,其它的是8位(除法无余数),所以要不同的锁存器. 各锁存器同时受各选通信号PPA、PPS、PPM、PPD和乘、除时钟脉冲MCK、DCK的控制.各锁存器的数据输出端采用总线复用方式一起联到另一16位锁存器的输入端,各锁存器依据选通信号的不同而在总线上呈高阻或数据输出状态.最后,加、减、乘、除运算结果从锁存器输出.同时输出加、减运算的进位标志.
3 VHDL语言设计
一般的,硬件描述语言可以在三个层次上进行电路描述,依次为行为级、RTL级和门电路级.VHDL语言非常适合行为级和RTL级的描述.而且VHDL语言设计效率高,生
第3期李飞,尹飞,刘兴成,陈兴文:用VHDL语言实现ALU的算术运算单元 11
成的电路性能也不错,所以本设计采用VHDL语言.下面给出8位二进制加法器的程序.[ 程序1—1]
library ieee;
use ieee.std_logic_1164.all;
entity ad8 is
port( cin: in std_logic;
a: in std_logic_vector(7 downto 0);
b: in std_logic_vector(7 downto 0);
s: buffer std_logic_vector(7 downto 0);
cout: buffer std_logic );
end ad8;
architecture a of ad8 is
signal at,bt,st: std_logic_vector(8 downto 0);
begin
at<='0'&a;
bt<='0'&b;
st<=at+bt+cin ;
s<=st(7 downto 0) ;
cout<=st(8);
end a;
4 结束语
随着EDA技术的迅速发展,CPLD/FPGA技术与VHDL语言设计已在越来越多的场合中显示出其优越性.设计者只须了解系统的逻辑功能,便可实现具体的优化电路.如将本文的设计思想应用到本院相关专业的计算机组成原理实验课中,可以减少以往所需要的大量硬件电路接线,提高实验系统的集成度与稳定性,又会使实验者对可编程逻辑器件有了更高的认识,同时也提高了实验课的技术含量与质量.
参考文献:
[1] 潘松,王国栋. vhdl实用教程[M]. 四川:电子科技大学出版社,2000.
[2] 李景华,杜玉远. 可编程逻辑器件与EDA技术[M]. 辽宁:东北大学出版社,2001.
[3] 阎石. 数字电子技术基础[M]. 北京:高等教育出版社,1998.
Accomplishing the Arithmetic Operation Unit of ALU with VHDL
LI Fei , YIN Fei , LIU Xing-cheng , CHEN Xing-wen
(Dalian Nationalities University, Dalian Development Zone 116600, China)
Abstract:Ways to accomplish the arithmetic operation cell of ALU at high speed and eight-bit with programmable logic device are introduced. Schematic documents and submodule program with VHDL language are also given.
Key words: arithmetic-logic unit; VHDL language; CPLD