基于EDA的ALU设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书
课程名称:EDA课程技术设计题目: ALU设计
学院:电气信息学院专业:测控技术与仪器年级:
学生:
学号:
指导教师:
完成日期:2010年6月20日
1. EDA 技术和设计题目简介.................................................................................... 1.. .
1.1 EDA 技术简介.................................................................................... 1.. .
1.2 设计题目简介.................................................................................... 1.. .
2. 总体方案设计与实现工具.................................................................................... 2.. .
2.1 ALU 原理分析................................................................. 2...
2.2 用FPGA 实现ALU 的设计....................................................... 2...
2.3 V ERILOG HDL 开发语言简介.......................................................
3..
3. ALU 的各模块的具体设计....................................................................................
4.. .
3.1 译码与控制分配模块ALUMUX 的实现............................................
4..
3.2 逻辑运算模块ALUCORE 的实现.................................................
4..
3.3 加减模块ADDSUB 的实现
6...
3.4 乘法模块MUL 的实现
7...
3.5 除法模块DIV 的实现
9...
3.6 各各模块的组合
1..5.
4 系统仿真与调试................................................................................... 1..
5 .
4.1 仿真环境介绍
1..5.
5 总结与体会................................................................................... 2..0 ..
5.1 设计的体会
2..0.
5.2 设计的不足和改进措施 .................................................... 2..0.
5.3 致谢
2..0..
参考文献................................................................................... 2..1 ..
附录:................................................................................... 2..2 ..
EDA技术课程设计
摘要:本次设计采用的是EDA技术设计一个算术逻辑单元ALU。
本设计主要完成ALU整体
设计,设计分为两个模块:算术运算模块和逻辑运算模块。
算术运算模块包括带进位的八位数的加减和四位数的乘除法运算,逻辑运算模块包括左移与右移。
本设计使用VerilogHDL语言编写,并可以在FPGAh实现。
Quartus II来进行仿真和调试。
关键词:EDA技术,ALU VerilogHDL 语言,FPGA
Abstract:This design is adopted to design a EDA arithmetic logic unit (ALU). The design of the main design, the design of the ALU is divided into two modules: arithmetic and logical operations module・With binary arithmetic modules including eight digit deductions and four digits, the method of computing, logic operation modules including left and right. This design USES VerilogHDL language, and can be realized on FPGA. Simulation and Quartus II to debug
Keywords:EDA technology, ALU, VerilogHDL language, FPGA
1. EDA技术和设计题目简介
1.1 EDA技术简介
EDA是电子设计自动化(Electron Design Automation)的缩写,是在20世纪90年代初,从CAD (计算机辅助设计)、CAM (计算机辅助制造)、CAT (计算机辅助测试)和CAE (计算机辅助工程)的概念发展起来的。
EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA勺概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA勺应用。
目前EDA技术已在各大公司、
企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。
EDA设计可分为系统级、电路级和物理实现级。
1.2设计题目简介
算术逻辑单元(Arithmetic Logic Un it, ALU)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"And Gate"和"Or Gate"构成的算术逻辑单元,主要功能是进行二进制的算术运算,如加减乘(不包括整数除法)。
基本上,在所有现代CPU体系结构中,二进制都以补数的形式来表示。
此算术逻辑单元能构完成带进位的八位数的加减运算和四位数的乘法和除法的运算。
本文介绍带进位的ALU设计,用VerilogHDL
语言编写,并可以在FPGA上实现。
2•总体方案设计与实现工具
通过查阅大量相关技术资料,并结合自己的实际知识,我主要提出了使用FPGA的方案来实现系统功能。
下面我将首先对这这种方案的组成框图和实现原理分别进行说明,然后阐述我最终选择方案的原因。
2.1 ALU原理分析
根据本实验的设计要求ALU具有以下功能:
(1)带进位的加、减、乘、除四则运算。
(2)数据传送、移位、判断和程序转移等功能。
由于ALU是中央处理器(CPU)的重要组成部分,所以对ALU的面积、功耗、指令执行时间和稳定性都有很强的要求,这样就对设计ALU器件就有特高的要求。
2.2用FPGA实现ALU的设计
在现代电子系统中,数字系统所占的比例越来越大。
现代电子系统发展的趋势是数字化和集成化,CPLD/FPGA作为可编程ASIC器件,在数字系统设计中发挥着重要的作用。
与传统的可编程器件相比,FPGA采用了类似门阵列的通用结构,规模可以做的较大,可实现的功能更强,设计的灵活性更大。
且FPGA的容量越来越大,它所提供的门数从几百门到上百万门,可以满足不同的需要。
因此用FPGA来实现ALU的功能不
会受到FPGA门数的限制。
用FPGA实现的ALU有很多优点:
(1)编程方式简便先进。
(2)高速FPGA的时钟延迟可达纳秒级,结合其并行工作方式在超高速应用领域和实时测控方面有非常广阔的应用前景。
(3)高可靠性表现在几乎可将整个系统下载于同一芯片中从而大大缩小了体积易于管理和屏蔽。
(4)开发工具和设计语言标准化开发周期短。
(5)功能强大应用广阔FPGA可供选择范围很大,可根据不同的应用选用不同容量的芯片。
利用它们可实现几乎任何形式的数字电路或数字系统的设计。
(6)易学易用开发便捷FPGA应用的学习不需太多的预备知识,只要具有通常
的数字电路和计算机编程基础知识,就足以在短期内掌握基本的设计方法和开发技
巧。
2.3 VerilogHDL开发语言简介
Verilog HDL 是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
Verilog HDL语言具有下述描述
能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。
所有这些都使用同一种建模语言。
此外,Verilog HDL 语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。
Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿
真语义。
因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。
语言从C编
程语言中继承了多种操作符和结构。
Verilog HDL提供了扩展的建模能力,其中许多扩
展最初很难理解。
但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。
当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。
Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。
前者由Gateway Design Automatio n公司(该公司于1989年被Cade nee公司收购)开发。
两种HDL均为IEEE标准。
3. ALU的各模块的具体设计
ALU模块的功能是按照控制模块给出的指令,对来自数据存储器、程序存储器、累加器ACC和程序状态字的数据进行算术、逻辑或位运算。
ALU模块可以直接或间接
的执行很多指令,如加、减、乘、除等算术运算指令,逻辑与、或、异或等逻辑运算指令以及移位操作指令。
ALU模块执行的指令有很多,除去上述的算术运算、逻辑运算和环移指令外,还包括条件转移指令中的比较条件转移指令CJNE和减1条件转移指令DJNZ。
这种设计方法主要考虑比较条件转移指令CJNE设计上的方便与规范性;而减1
条件转移指令DJNZ的指令操作需要进行减1操作,正好可以利用ALU模块的相应算术运算来进行,因此可通过ALU模块间接实现的;其余的很多指令则由ALU模块直接实现,这些指令包括算术逻辑运算指令、逻辑运算指令和环移指令。
alu模块共由5个
子模块组成,分别是译码与控制分配模块alumux、逻辑运算模块alucore、加减模块addsub乘法模块mul和除法模块div
3.1译码与控制分配模块alumux的实现
alumux模块是alu模块的译码与控制分配模块,用于实现对从control模块传来的
操作代码进行译码和把不同的操作代码分配到不同的子模块进行操作,其实体图如图3-1所示。
alumux模块的译码部分采用三个进程(Process语句来实现,在每个进程中通过CASE 语句来实现对输入信号的译码操作。
由control模块传送给alumux子模块的操作代码共有41条。
其中,每条操作代码都在control模块中用常量来加以定义,如对操作代码
3.2逻辑运算模块alucore的实现
alucore模块主要是实现相应的逻辑运算、移位指令运算及比较指令等相关运算,其实体图如图3-3所示:
alioore
cp aJ[7:0|
qa_bj F:C| cy_o(1£J
du_cnrLi pq res it_a(7 q
i_alicore
当指令代码经alumux模块译码后若选通了alucore模块,并提供相应的操作代码和操作数后,alucore模块开始进行相应的工作。
在VerilogHDL语言中,逻辑运算非常容易实现,可以直接利用相应的与(and)、或(or)、非(not)等语句来实现。
如移位逻辑指令的实现如下:
5'b00011:
beg in
{ALU_C,ALU_O}={C _in ,AC _in};
end //如果操作译码为5' b00100则完成ALU_C->A(直移
5'b00100:
beg in
{ALU_C,ALU_O}={C」n ,GR_i n};
end //如果操作译码为5' b00100则完成ALU_C->G直移
5'b10000:
beg in
{ALU_O,ALU_C}={C」n ,GR_i n};
end //如果操作码为5' b10000则完成SHCR AC,RI
5'b10001:
begi n {ALU_C,ALU_O}={GR_i n,C」n};
end //如果操作码为5' b10001则完成SHCL AC,RI 5'b01111:
beg in
{ALU_C,ALU_O}={C」n ,~GR_i n};
end //如果操作编码为5' b01111则进行取反操作
3.3加减模块addsub的实现
addsub加减法模块主要用来实现alu模块算术运算中的加减法运算,由于减法运算的
实现也可以转化成加法运算,因此addsub模块的实现实质就是加法器的设计,实
现后的实体图如图3-4所示。
其中输入端口18个,两个8位的操作数端口opa_i和opb_i,用于存放加数和被加数;一个状态位cy_i,即低位的进位输入;另一个输入端为加减法选择信号addsub」,高电平时为加法操作,低电平时为减法操作。
输出端口11个,包
括8位的运算结果输出端口rslt_o,两位的进位状态标志位cy_o和一位溢出状态标志位ov_o。
设计采用组合逻辑设计方法,所以对于设计的关键部分,并行进位的产生相应的有一定的要求,即VHDL语言中的进位信号的表示应使用变量(variable),而不能使用信号量(signal)。
因此在VHDL语言中,可直接按照公式的要求进行编写代码,其结果将由信号rslt_o代出addsub模块,返回到alumux中。
代码实现如下:
5'b00111:
beg in
{ALU_C,ALU_O}=AC _in+GR_i n;
end 〃如果操作译码为了 5 ‘ b00111则进行八位数相加
5'b01000:
beg in
{ALU_C,ALU_O}=AC _in-GR_i n;
end 〃如果操作编码为了 5 ‘ b01000则八位数相减
5'b01011:
begi n
{ALU_C,ALU_O}=AC _in+GR_i n+C」n;
end 〃如果操作译码为了 5 ‘ bO1O11则进行带进位八位数相加
5'b01100: begi n
{ALU_C,ALU_O}=AC _in-GR_i n-C」n;
end//如果操作译码为了 5 ‘ bO11OO则进行带借位八位数相减
adder'
3.4乘法模块mul的实现
mul模块主要实现算术运算中的乘法运算,该模块的设计非常简单,直接利用VerilogHDL 语言中的乘法运算符编写程序进行设计即可,其实体图如图3-5所示。
mul
模块的输入为被乘数mula和乘数mulb,均为4位输入,而输出product_o为8位输出。
在VerilogHDL的实现中,内部运算的实现仍然是通过变量的是用来实现的,因为内部的移位相加是通过for循环语句来实现的。
因为是4位的乘法器,所以要循环4次,且从乘数的最低位开始循环至最高位。
每次循环时都要对乘数的对应位进行判断,若乘数的对应位是‘ 1'则把被乘数与保存中间值的变量值相加,然后再存于变量v_d中;若
乘数的对应位是‘ 0'则直接把保存中间值的变量值送入变量v_d中。
判断结束后,循环中止前,都要把v_d中的值放到v_c中,并右移一位。
依此循环4次,则可求出最终乘积,而乘积的结果由信号product_o送回到alumux模块。
其实现代码如下:
5'b11100:
begin {ALU_C,ALU_O}={C _in, mul(AC _in [3:0],GR_i n[3:0])};e nd // 如果操作译码为5' b11100则完成四位数相乘
function [7:0] mul;//四位数移位相乘函数
in put [3:0]AC_i n;
in put [3:0]GR_i n;
reg [7:0]R;
reg [7:0]temp;
reg [7:0]temp2;
beg in
R=0;
temp=0;
temp2=AC」n;
if(GR_i n[0]==1)
begi n temp=temp2;
R=temp2; temp2=temp;
end
if(GR_i n[1]==1)
begi n
temp=temp2;
R=R+(temp2<<1); temp2=temp;
end
if(GR_i n[2]==1)
begi n
temp=temp2;
R=R+(temp2<<2);
temp2=temp;
end
if(GR_i n[3]==1)
begi n
temp=temp2;
R=R+(temp2<<3);
temp2=temp;
end
mul=R;
end
endfun cti on
3.5除法模块div的实现
div模块主要实现算术运算中的除法运算。
本设计中的除法器采用了逐位相减的算法来设计实现,其实体图如图3-6所示。
div模块的输入为被除数diva」和除数divb_i,均为8位输入,而输出为商qutnt_o和余数rmndr_o,也为8位输出。
在用VHDL语言实现除法器时,采用
for循环语句对被除数从高位到低位逐位选取,选取的位数每循环一次增加一位,将选取的位值通过高位补0的方法扩展成8位数值,并与除数divb_i进行比较,若扩展后数值大于
divb_i,则将商数暂存变量v_qutnt(8位)的相应位置’1'并求出两者的差值,存放在余数的暂存变量v_dffrnc中,此时若循环未结束,则将余数放
到被除数暂存变量v_diva中,为下次计算做准备,然后取出被除数的下一位进行循环计算。
如扩展后数值小于divb_i,则将商数暂存变量v_qutnt(8位)的相应位置’0'并将v_diva中的数值直接存入v_dffrnc中,保存余数。
如此循环8次,则循环结束后,v_qutnt 中保存了商数,
v_dffrnc中保存了余数,两者分别通过信号qutnt_o和rmndr_o送到alumux 模块。
实现代码如下:
5'b11101: begin {ALU_C,ALU_O}={C_in,div(AC_in[7:0],GR_in[7:0])};end 作译码为
//如果操5' b11101则完成四位数相除
function [7:0]div; //八位数相除的函数
in put [7:0]AC」n;
in put [7:0]GR_i n;
reg [7:0]R_out;
reg [7:0]temp;
reg [7:0]temp2;
reg [7:0]temp3;
reg [7:0] next;
reg [7:0]temp4;
beg in
R_out=8'b0;
temp=AC」n;
n ext=8'b0;
temp3=8'b0;
temp2=GR_i n;
temp4=AC」n;
if(AC」n >7);
if(temp>=GR_i n)
beg in
temp3=temp2;
R_out[7]=1'b1;
temp=temp4-(temp2<<7);
temp2=temp3; n ext=temp;
temp4=temp;
end
temp=n ext;
n ext=temp;
temp=temp>>6;
if(temp>=GR_i n)
beg in
temp3=temp2;
R_out [ 6]=1'b1;
temp=temp4-(temp2<<6); temp2=temp3;
n ext=temp;
temp4=temp;
end
temp=n ext;
n ext=temp;
temp=temp>>5;
if(temp>=GR_i n)
beg in
temp3=temp2;
R_out [ 5]=1'b1;
temp=temp4-(temp2<<5);
temp2=temp3;
n ext=temp;
end
temp=n ext;
n ext=temp;
temp=temp>>4;
if(temp>=GR_i n)
beg in
temp3=temp2;
R_out[4]=1'b1;
temp=temp4-(temp2<<4);
temp2=temp3;
n ext=temp;
temp4=temp;
end
temp=n ext;
n ext=temp;
temp=temp>>3;
if(temp>=GR_i n)
beg in
temp3=temp2;
R_out[3]=1'b1;
temp=temp4-(temp2<<3);
temp2=temp3;
n ext=temp;
temp4=temp;
end
temp=n ext;
n ext=temp;
temp=temp>>2;
if(temp>=GR_i n)
beg in
temp3=temp2;
R_out[2]=1'b1;
temp=temp4-(temp2<<2);
temp2=temp3;
n ext=temp;
temp4=temp;
end
temp=n ext;
n ext=temp;
temp=temp>>1;
if(temp>=GR_i n)
beg in
temp3=temp2;
R_out[1]=1'b1;
temp=temp4-(temp2<<1);
temp2=temp3;
n ext=temp;
temp4=temp;
end
temp=n ext;
n ext=temp;
temp=temp;
if(temp>=GR_i n)
beg in
temp3=temp2;
R_out[0]=1'b1;
temp=temp4-temp2;
temp2=temp3;
n ext=temp;
temp4=temp;
end
temp=n ext;
div=R_out;
end
endfun cti on
3.6各各模块的组合
下图是一位ALU的原理图,即一位的加减法、乘除法和一位的逻辑运算的连接
4系统仿真与调试
4.1仿真环境介绍
本设计使用quartusii的时序仿真进行波形的仿真测试,仿真步骤如下:
1.新建一个vector Waveform Files
2.选择no des files
3.设定每个输入信号的激励信号
4.选择time 还是fun ctio n 仿真(fun ctio n 仿真还要先执行功能process in g->ge neral functional simulati on n estlist)
5.时序仿真可以用于分析时间延时,功能仿真只用于验证模块的功能;
[±j □I n C
p _i
血□
□
□
日
op B
L ®
000113 C—in
AC_in B C:00000010 X00000100 X 00010001 X 10000010
GR_in B C:00000001 X00000011 X 00001100(00110000 ) ALV_C
ALU_O B C[00000010 ](00000100 }( 000100C1X 10000010
-ALU_O[T]
1 » 1r
-ALU_0[6]
-ALU_0[5]
-ALU_0[4]1
-ALUJO ⑶
-ALU_0[2]
-ALUJD⑴J
L ALUJD[O]1
完成ALU C->AC直移仿真波形
B C
□ ALU_p
-Aiar_a[Tj
-AUT_0[6]
-ALU_D[4]
-AUJ_CI[3J
-ALU_0[2]
-ALAJ_0[0]
C^in
ALU_C
ALUJO
-AUf_0[7j
-AU_0[6]
-ALVJ3[51
-AUf_0[4j
-AU_0[3]
•ALO⑵ -
Aur_o[i] -
AU_O[OJ
001003(
OOQOOQOQ \ 11000000 );00110000 x 00001100 )I00000011 x 10110010 x 10(X)1100 工
[i a
Ll ■
{ 11000000 学00110000 00001100 E oaoooot1r 10110010 彳lOOOHOO J
1
L
1
r1
J■ 1
完成ALU C->Gr直移仿真波形
1----------- 001L1
ooooi iao x ODiiooao 、\1100(X)00 f ooiiocni X Hotnooo X oioowia X OOCHIDOD X nOMOOl 1 >
00001100
1 lOODOOD(COOll DI 0 X M001000 X lMOMOl X 00M0D00 X
i J Q0D01IU 】(Hl 10000(~1TOODOOO JK~01001011 3【11001000 t noooon 来00001000 I - -i i i n
1r
L
:
r1JL i —s
r------- 1 11
J1______
1r
八位数相加的仿真波形
八位数相减的仿真波形
田< »P B (
D10J1
[ :Jn
田 AC_iik
B t
W00Q001 X
L0000000
3 OOllOQOO \
ooooooai
1+1 GR —i n
B C (90000010
)
10000000 X
01100000
x OOUOQOD X
00000011
ALV_C
■ 1
曰 ALW_0
I oooooon
(00000000 : (11100000
* 11100001 :
n 01100001 t : DQODOIOI
-*LU_O[T]
L
I
-ALV_p [&]
1
i
L
-ALV_C 【5]
1
-ALV_p[4]
I
1
-ALU_0[3]
-ALU_0[2]
-ALU_O[1]
il
L ALU _O [O ]
r
T
带进位八位数相加的仿真波形
op
匚_in
AC_ixt
GR_in
ALUJC ALU 』
「ALU_0[7]
-AUJ_0[6]
-AIJJ _O [5]
-AIU_0[4]
-AUJ_O[2J
-ALU_O[11
-ALAJ_0[0]
1 ----
01000
X
1
00000100 X 10000000 X 00000110 X
00000001 ) [OtMOllOO 、.
00000000 X
00000001 X
00011D0O ) (earn IODO '*、
ooaooai i )
00000010 )(
00000001 X
J
1
| 00000011 】
(~DllDtOOO __丫11111110__;
(11111110~~J
f 00001010_ )
(11111111 1
L
1
1 1
1
[
1
1
1
!
J
L
L
1
带进位八位数相减的仿真波形
求反指令的仿真波形
左移和右移指令的仿真波形
习AC_in
B op
3
司 AEULP
C.in
MJJ_C 虻_i4[d]
AC_in[l] Qu⑵
忙_in[3]
AC_in[4j
jC_in[5]
^C_iu[6]
iCJnET]
AL1TJDEO]
ALU 卫
【0]$Lukch
J ps 10.0 3is 20.Q ns 30.0 皿40.0 ns 50. g 佃60 0
20. C n s J
( DDD00I0] X OOODDDDD
( moo X ooooo
(OQOOIOIO )J QOOOOOOQ
( ooiiaoia X ' ] ODDIDOOa
______________
L
两个四位数移位相乘的仿真波形
1+1 KC_BII
[±1 <T
|±J CR_i.n
□;O_D
UAf-C
HC_in[l)
WCJ42]
U_m[4]
K_LH[5]
忙」n[E]
M:」n[T]
ii.v_a[fl]
idJir_D(O]Slitc
h 3 p2 10.0 砧20. 0 xix 3Q. Qi ns 40. 0 2 SD_ 0 ns 60. 0
r 1 1 1 1 ■
20.
(
1 Its
【OOOMIOO X OOODOOOO
: LI 101 X_coooo
;OOOMIOO X00000000
C IODOOOOI-1________________________________ ocoooooo
"L
n
"L
两个八位数的除的仿真波形
5总结与体会
5.1设计的体会
在本次设计中主要是在于EDA工具的使用,通过VerilogHDL语言完成ALU各模块的设计和仿真,成功的完成了此设计。
从此设计中我学到了许多,对于一个系统的开发,最初的模块划分是非常重要的。
随着系统的复杂度的增大,划分对系统的后续开发显示出越来越大的重要性。
随着自顶而下(Top-Down设计方法的广泛采用,把一个系统划分为几个子模块,然后各个子模块分别设计的方法越来越多的被广大设计者所使用。
一个系统模块划分的好坏,模块间接口设计的是合理,将直接影响到整个的系统开发,甚至会决定系统开发的成功与否。
此设计中体现了VerilogHDL语言的重要性。
VerilogHDL 是一种硬件描述语言,它所描述的对象是具体的硬件电路。
这就决定了它与普通的程序设计语言有着很大的不同。
普通的程序设计语言一般是顺序执行的,而VeriolgHDL语
言则有较多的并行执行部分。
这是由硬件电路的并行性所决定的。
作为描述硬件电路的一种设计语言,VerilogHDL必然要有相应的语句去描述硬件电路的并行性。
编程时,思路中要有相应的电路概念,然后按照相应的电路编写程序,这样的程序系统易于综合,优化,最后的综合的电路结果也比较理想。
5.2设计的不足和改进措施
对本文所涉及的范围来说我所做的工作还是有欠缺的,本文主要是对ALU的功能进
行软件设计和仿真,而没有通过实际的硬件系统来仿真与验证,如果以后条件允许的话,可以在硬件系统上来进行仿真与验证,使其更适合于实际应用。
其次是在仿真波形中还有很的毛刺出现,这是由于在设计的过程中由于竞争冒险导致所致,可以在整个设计的源程序中加入时钟,这样可以消除毛刺带来的影响。
5.3致谢
首先感谢我的导师黄勇老师!黄老师给了我们全方位的支持,包括课程设计的选题、文献资料的收集、整理和论文写作过程的修改等等,特别是在论文的定稿过程中,更是一丝不苟,提出了许多宝贵意见。
同时黄老师的治学态度、正直的品质和乐于助人的精神,无时不刻在感染着我,鞭策着我,使我在工作和学习上不断取得进步!
其次要深深感谢电气学院的全体老师辛勤培养和教诲!
同时感谢我的同学,他们的帮助和相互支持使我的课程设计顺利地完成。
参考文献
[1]康华光•电子技术基础数字部分(第五版)[M]高等教育出版社2006.01
[2]康华光.电子技术基础模拟部分(第五版)[M]高等教育出版社2006.01
[3]谢自美.电子线路设计、试验、测试(第三版)[M]华中科技大学出版社2008.01
[4]杨志亮.Protel99se 电路原理图设计技术[M]西北工业大学出版社2002.02
⑸ 王彩君/杨睿.数字电路实验[M]国防工业出版社2006.07
⑹王建新/姜萍.电子线路实践教程[M]科学出版社2003.09
[7]顾德仁/万栋义.脉冲与数字电路[M]高等教育出版社1985.07
[8]文腱成.电子线路试验教程[M]北京气象出版社2004 .01
[9]李银华.电子线路设计指导[M]北京航空航天大学出版社2005.06
[10]张宪/何宇斌.电子电路制作指导[M]化学工业出版社2006.01
附录:
r >。