EDA技术实验指导书MAXPLUSIIdocx.docx
《EDA技术实验指导书MAXPLUSIIdocx.docx》由会员分享,可在线阅读,更多相关《EDA技术实验指导书MAXPLUSIIdocx.docx(32页珍藏版)》请在冰点文库上搜索。
EDA技术实验指导书MAXPLUSIIdocx
实验一4选1数据选择器的设计(EDA-01)2
实验二译码器的设计(EDA-02)6
实验三带清零、使能的4位加法计数器设计(EDA-03)10
实验四8位移位寄存器的设计(EDA-04)12
实验五深度为4的8位RAM设计(EDA-05)14
实验六基于LPM函数的加法电路设计(EDA-06)17
实验七综合实验・Moore型有限状态机的时序电路设计(EDAP7)20
主要参考文献22
实验一4选1数据选择器的设计
一、实验目的和任务
1、熟习MAX+PLUSII软件的使用;
2、掌握用原理图输入法和硬件描述语言(VerilogHDL)两种方法來设计逻辑电路;
3、通过电路的仿真及验证,进一步了解4选1数据选择器的功能;二、实验内容
1、用原理图输入法來设计4选1数据选择器
参照按图1・1所示來编辑完成4选1数据选择器的原理图输入设计,其中a.b、c、d为数据输入端,sel[l]、sel[0]为控制输入端,q为4选1数据输岀端。
存盘仿真后,观察仿真波形,以验证数据选择器的功能。
2、用VerilogHDL硬件描述语言来设计4选1数据选择器
用MAX+plusII中的文本编辑器,编辑输入4选1数据选择器源程序:
modulemux4_l(a,b,c,d,sei,q);
inputa,b,c,d;
input[l:
0]sel;
outputq;
regq;
always@(sei)
case(sel)
2'b00:
q=a;
2'b01:
q=b;
2'blO:
q=c;
2'bll:
q=d;
endcase
endmodule
程序中的a、b^c>d依然为数据输入端,sel[l]^sel[0]为控制输入端,q为4选1数据输出端。
同样存盘后进行仿真,并观察仿真波形,以验证数据选择器的功能。
三、实验仪器、设备及材料
电脑、EDA软件、实验箱、下载电缆、连接导线。
四、实验原理
4选1数据选择器的原理框图及真值表如图1・2及表1・1所示,sei[1:
0]可能出现四种组合情况:
00011011,它分别对应选通四个不同的数据输入a、b、c、d,从q端输出。
结合以前所学数字电路的知识,可由真值表得出利用“与非门”实现的逻辑电路,进而可用MAX+PLUSII原理图输入方法,设计出该4选1数据选择器;如应用EDA技术所学的VerilogHDL硕件描述语言来描述该电路功能,即可设计岀该4选1数据选择器的源程序。
图1・24选1数据选择器的原理槪图
五、主要技术重点、难点
木实验技术重点在于理解4选1数据选择器的功能后,用原理图输入法和硬件描述语言(VerilogHDL)两种方法来设计该逻辑电路。
其难点是要仿真出4选1数据选择器的波形,然后通过观测仿真波形,来验证该数据选择器的功能。
六、实验步骤
(-)原理图输入法的设计步骤:
(1)进入Windows操作系统,打开MAX+plusII。
1、启动File\ProjectName菜单,输入设计项目的名字MUX41。
点击Assign\Device菜单,选择器件(本设计选用EPF10K10)。
2>启动菜单File\New,选择GraphicEditorFile,打开原理图编辑器,进行原理图
设计输入。
(2)设计的输入
1.放置4个三输入端与非门(nand3)>1个四输入端与非门(nand4),2个非门(not)器件、及6个输入端(input)、1个输入端(output)在原理图上;
1在原理图的空白处双击鼠标右键,在出现窗体中的"SymbolLibraries:
”—栏中,从\maxplus2\max21ib\prim元件库中调出4选1数据选择器电路设计所需要的元件;
2在光标处输入元件名称或用鼠标点取元件,按下0K即可。
3如果安放相同元件,只要按住Ctrl键,同吋用鼠标拖动该元件。
4参照图1・1来安放相应的元件。
2.添加连线到器件的管脚上
把鼠标移到元件引脚附近,则鼠标光标自动由箭头变为十字,按住鼠标右键拖动,即可画出连线,参照图1连好相应元件的输入、输出脚。
3.保存原理图
单击保存按钮,对于第一次输入的新原理图,岀现类似文件管理器的图框,选择合适目录、合适名称保存刚才输入的原理图1-1,原理图的扩展名为.gdf,本实验中取名为mux41.gdfo
(3)编译
启动MAX+plusII\Compiler菜单,按Start开始编译(如图1-3),并显示编译结果,生成.sof、.pof文件,以备硬件下载和编程时调用。
同时生成.刖文件,可详细杳看编译结果。
入上面“二、实验内容”中的程序;
(4)、在新的目录中存成mux_l.V文件,并按“Ctrl+Shift+J”将该文件设为一个Project工程,
然后进行编译。
(5)参照原理图输入设计进行仿真,并观察仿真波形,以验证所设计电路的功能。
图1-5新建文木文件的选择对话框
七、实验报告要求
1.对于原理图设计要求有设计过程。
2.详细论述实验步骤。
3.给出原理图输入法和VerilogHDL语言设计两种方法的仿真波形。
八、实验注意事项
1.使用原理图设计时,其文件名[mux41.gdf]要与仿真的波形文件名[mux41.scf]相同,只是文件的后缀不同;使用VerilogHDL语言设计时,其文件名(mux4_l.V)要与模块名[modulemux4_l(a,b,c,d,sei,q);]相同,且仿真的波形文件名[mux4_l.scf]也要相同。
2.用原理图输入法和VerilogHDL语言两种方法所做的设计,最亦放在不同的目录屮,且口录名不要出现中文字符。
3.在WaveformEditor仿真时,应先在菜单选项的Options/GridSize...中所弹出的对话框中将GridSize:
改为l.Ous;并菜单选项的File/EndTime…中所弹出的对话框中将GridSize改为lOO.Ous,以方便观察、理解仿真得到的波形。
九、思考题
1.如何用设计好的4选1数据选择器,來实现8选1数据选择器的设计(用原理图输入法来设计),试给岀设计与仿真的结果。
2.谈谈使用原理图输入法和VerilogHDL语言设计两种方法的优劣心得。
实验二译码器的设计
一、实验目的和任务
1、熟习MAX+PLUSII软件的使用;
2、掌握用VerilogHDL硬件描述语言來设计3-8译码器及七段显示译码器;
3、通过电路的仿真和皱件验证,进一步了两种译码器的功能;二、实验内容
1、要求用VerilogHDL语言设计一个3输入、8输出的3・8译码器,输出低有效。
用MAX+pIusII中的文本编辑器,编辑输入3-8译码器的参考源程序:
moduledecoder3_8(a,y);input[2:
0]a;
output|7:
0]y;
reg[7:
0]y;
程序中的a[2:
0]为3个数据输入端,y[7:
0]为8个数据输出端。
编辑输入存盘后,要求进行仿真,并观察仿真波形,以验证3・8译码器的功能。
2、要求用VerilogHDL语言來设计七段显示译码器,用于控制共阴LED数码管显示“0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,字符。
要求该输入为4位二进制码,输出7位共阴LED数码管的a、b、c、d、e、f、g的控制位,以控制其显示相应的字符。
用MAX+plusII的文本编辑器,编辑输入七段显示译码器的源程序:
modulede_7(d,y);
input[3:
0]d;
output[6:
0]y;
reg[6:
0]y;
always@(d)
程序中的d[3:
0]为4位二进制码的输入端,7位输出y[6:
0]对应共阴LED数码管的7位控制位:
a、b、c、d、e、f、go同样存盘后进行仿真,并观察仿真波形,以验证七段显示译码器的功能。
三、实验仪器、设备及材料
电脑、EDA软件、实验箱、下载电缆、连接导线。
四、实验原理
1.
3・8译码器的原理框图及真值表如图2・1及表2・1所示,3个输入a[2:
0]可能出现8种组合情况:
000,001,010,011,100,101,110,111,这样就可控制8个输出y[7:
0]相应的某1位输出为“0”。
图2・1译码器的原理框图
2.七段显示译码器的原理框图及真值表如图2・2及表2・2所示,4个输入d[3:
0]口J能出现16种组合情况;它的7个输出y[6:
0]分别控制共阴LED数码管的a、b、c、d、e、f、g七段的亮/灭,从而显出对应的16个字符。
图2・2七段显示译码器的原理框图
表2・28421BCD七段显示译码器真值表
输入
输出
输入
输出
输入
输出
输入
输出
d[3:
0]
y[6:
o]
d[3:
0]
y[6:
o]
d[3:
0]
y[6:
o]
d[3:
0]
y[6:
o]
a,b,c,d,e,f,g
a,b,c,d,e,f,g
a,b,c,d,e,F,g
a,b,c,d,e,F,g
1,1,1,1,1,“)
HH4M
0,1,1,(),0,1,1
Hn8M
1,111,1,1,1
HMCH
1,0,0,1,1,1,0
Hr*
(),1,1,0,0,0,0
1,0,1,1,0,1,1
Hn9M
1,111,0,1,1
HMDH
0,1丄1,1,0,1
H'2M
1,1,0,1,1,0,1
Hn6M
1,0,1,1,1,1,1
HnAH
1,1,101,1,1
HnEn
100,1,1,1,1
H'3'
1,1,1,1,0,0,1
HH7M
1,1,1,0,0,0,0
HnBH
0,0,1,1,1,1,1
HHFM
1,0,0,0,1,1,1
五、主要技术重点、难点
木实验技术重点在于理解3-8译码器、七段显示译码器的功能后,用VerilogHDL硬件描述语言来设计两种译码器;并掌握always,case语句的使用。
其难点是要仿真th3-8译码器、七段显示译码器的波形,然后通过观测仿真波形,来
验证相丿应译码器的功能。
OKCancel
六、实验步骤
(一)用VerilogHDL语言设计3-8译码器的步骤:
(1)、运行MAX+PLUSII软件
(2)、启动File\New菜单命令(如图2-3);
(3)、选择TextEditorfile,点击OK后,键入上面“二、实验内容”中的程序;
(4)、在目录中存成decoder3_8.V文件,并按“Ctd+Shift+J”将该文件设为一个Project工程,然后进行编译。
图2-3新建文本文件的选择对话框
(5)、仿真设计文件
New
FileType
启动MAX+plusII\F订e\New菜单,如图2-4所示进入波形编辑环境,编辑decoder3_8.V的波形文件,设置输入信号a[2:
0]的8种组合情况的值,并将波形文件以decoder3_8.scf为波形文件名存盘。
执行仿真命令,启动仿真并观察仿真波形,并对设计电路的进行功能验证。
(-)用VerilogHDL语言设计七段显示译码器
的步骤请参照3・8译码器的步骤进行。
图2-4新建波形文件的选择对话框
七、实验报告要求
1.详细论述两种译码器的VerilogHDL语言设计及仿真实验步骤。
2.给出两种译码器设计仿真后的波形。
八、实验注意事项
1.使用VerilogHDL语言设计3・8译码器/七段显示译码器吋,其文件名(decoder3_8.V/de_7.V)要与模块名[moduledecoder3_8(a,y);/modulede_7(d,y);]相同,且仿真的波形文件名[decoder3_8.scf/de_7.scf]也耍相同。
2.所设计的两种译码器,最好放在不同的目录中,且目录名不妾岀现中文字符。
3.在WaveformEditor仿真吋,应先在菜单选项的Options/GridSize...'I1所弹出的对话申£中将GridSize:
改为l.Ous;并菜单选项的File/EndTime…中所弹出的对话框中将GridSize改为1OO.Ous,以方便观察、理解仿真得到的波形。
九、思考题
1.如何理解3-8译码器仿真过程中出现的毛刺现象?
2.
如果七段显示译码器驱动的是共阳LED数码管,又该如何设计与Z对应的七段显示译码器?
实验三带清零、使能的4位加法计数器设计
一、实验目的和任务
1、熟习MAX+PLUSII软件的使用;
2、掌握用VerilogHDL硬件描述语言來设计加法计数器;
3、通过电路的仿真和破件验证,进一步了加法计数器的功能;
二、实验内容
1、耍求用VerilogHDL语言设计一个带清零、使能的4位加法计数器。
用MAX+plusII中的文本编辑器,编辑输入该4位加法计数器的参考源程序:
modulecouter_l(clk,clr,en,q);
inputclk,clr,en;
output|3:
0]q;
reg[3:
0]q;
always@(posedgeelk)
if(!
clr)
q=0;
elseif(en)
q=q+1;
endmodule
程序屮的elk为计数时钟输入,clr为清零输入控制端,en为计数使能输入控制端,q[3:
0]为4位加法计数器的输出。
2、编辑存盘后,要求进行相应的仿真,并观察仿真波形,以验证该计数器的功能。
三、实验仪器、设备及材料
电脑、EDA软件、实验箱、下载电缆、连接导线。
带清零、使能的4位加法计数器的真值表如表3・1所示,当清零端cli•为0时,将计数器的输出q[3:
0]清零;当clr为1时,且计数使能en为1时,才允许计数器进行加计数;而clr为I时,en为0时,无论是否有时钟elk来到,该计数器始终处于保持状态(即禁止计数状态)。
五、主要技术重点、难点
本实验技术重点在于理解带清零、使能的4位加法计数器的功能后,用VerilogHDL硬件描述语言來设计该加法计数器;并掌握always,if语句的使用。
其难点是要仿真岀4位加法计数器的清零、计数使能、保持状态(即禁止计数状态)等情况的波形,然后通过观测仿真波形,來验证该加法计数器的功能。
然后进行编译。
(5)、仿真设计文件
启动MAX+plusII\File\New菜单,如图3-2所示进入波形编辑环境,编辑couter_l.V的波形文件,设置清零小、计数使能en的4种组合情况的值,以及输入elk的时钟波形,并将波形文件以couter_l.sef为波形文件名存盘。
执行仿真命令,启动仿真并观察仿真波形,并对设计电路的进行功能验证。
图3・2新建波形文件的选择对话框
七、实验报告要求
1.详细论述带清零、使能的4位加法计数器的VerilogHDL语言设计及仿真步骤。
2.给岀4位加法计数器的清零、计数使能、保持状态(即禁止计数状态)等情况的仿真波形。
八、实验注意事项
1.使用VerilogHDL语言设计4位加法计数器时,其文件名(couter_l.V)要与模块名[modulecouter_l(clk,clr,en,q);]相同,且仿真的波形文件名[couter_l.sef]也要相同。
2.在WaveformEditor仿真吋,应先在菜单选项的Options/GridSize...'I1所弹出的对话申£中将GridSize:
改为l.Ous;并菜单选项的File/EndTime…中所弹出的对话框中将GridSize改为1OO.Ous,以方便观察、理解仿真得到的波形。
九、思考题
1.如要将设计的加法计数器改为减法计数器,该如何修改设计?
2.如要在所设计的4位加法计数器基础上增加一个进位位输出,又该如何修改设计?
实验四8位移位寄存器的设计
一、实验目的和任务
4、熟习MAX+PLUSII软件的使用;
5、学握用硬件描述语言(VerilogHDL)來设计移位寄存器电路;
6、通过电路的仿真和硕件验证,进一步了解8位移位寄存器功能。
二、实验内容
1、要求用VerilogHDL语言设i^一个8位移位寄存器。
用MAX+plusII中的文本编辑器,编辑输入该8位移位寄存器的参考源程序:
moduleshiter8(clk,d,q);
inputelk,d;
output|7:
0]q;
reg[7:
0]q;
integerk;
always@(posedgeelk)
for(k=0;k<7;k=k+l)begin
q[0]<=d;
q[k+l]<=q[k];
end
endmodule
程序中的elk为移位时钟输入,d为移位寄存器的数据输入,q[7:
01为8位移位寄存器的输出O
2.编辑存盘后,要求进行相应的仿真,并观察仿真波形,以验证该移位寄存器的功能。
三、实验仪器、设备及材料
电脑、EDA软件、实验箱、下载电缆、连接导线。
四、实验原理
移位寄存器主要是将串行输入的数据依次移入到寄存中,可用于串行预置初值、串并转换等场合。
它主要在时钟作用下依次左移(或右移),通过非阻塞性过程赋值及for循环语句来实现。
五、主要技术重点、难点
在于理解移位寄存器的工作原理后,用VerilogHDL语言的for循环语旬、非阻塞性
然后进行编译。
图4-1新建文本文件的选择对话框
(5)、仿真设计文件启动MAX+plusII\File\New菜单,如图4-2
所示进入波形编辑环境,编辑shiterS.V的波形文件,设置移位输入时钟elk的波形及输入数据d值,并将波形文件以shiterS.sef为波形文件名存盘。
执行仿真命令,启动仿真并观察仿真波形,并对设计电路的进行功能验证。
图4・2新建波形文件的选择对话框
七、实验报告要求
1.详细论述移位寄存器的VerilogHDL语言设计及仿真步骤。
2.给岀移位寄存器的仿真波形。
八、实验注意事项
1.使用VerilogHDL语言移位寄存器时,其文件名(shiter8.V)要与模块名[moduleshiter8(clk,d,q);]相同,且仿真的波形文件名[shiter8.sef]也要相同。
2.在WaveformEditor仿真时,应先在菜单选项的Options/GridSize...中所弹ill的对话框中将GridSize:
改为l.Ous;并菜单选项的File/EndTime...'!
'所弹出的对话框中将GridSize改为1OO.Ous,以方便观察、理解仿真得到的波形。
九、思考题
1.试设计一下8位右移移位寄存器,并比较8位左移和右移移位寄存器不同点。
实验五深度为4的8位RAM设计
一、实验目的和任务
1•熟习MAX+PLUSII软件的使用;
2.掌握用硬件描述语言(VerilogHDL)来设计RAM电路;
3.通过电路的仿真和硬件验证,进一步了解RAM的功能及特点;
二、实验内容
1、要求用VerilogHDL语言设计一个深度为4的8位RAM电路。
用MAX+plusII中的文木编辑器,编辑输入该RAM电路的参考源程序:
moduleRAM(clk,din,ad,read,we,q);
input
elk,we,read;
input
fl:
Olad;
input
[7:
0]din;
output[7:
0]q;
reg
[7:
0]q;
reg
[7:
0]a,b,c,d;
always@(posedgeelk)
if(we)
case(ad)
2,b00:
a=din;
2,b01:
b=din;
2^10:
c=din;
2^11:
d=din;
endcase
always@(posedgeelk)
if(read)
case(ad)
2^00:
q=a;
2'b01:
q=b;
2,bl0:
q=c;
2,bll:
q=d;
endcase
endmodule
程序中的输入elk为RAM工作时钟,ad[l:
0]为输入地址信号,read、we分别为读、写控制线,din[7:
0]>q[7:
0]分别RAM的数据输入、输出。
2.编辑存盘后,要求进行相应的仿真,并观察仿真波形,以验证该RAM的功能。
三、实验仪器、设备及材料
电脑、EDA软件、实验箱、下载电缆、连接导线。
四、实验原理
4X8位RAM的原理框图如图5-1所示,两位地址ad[2:
0]组成4位深度,read、we分别控制RAM的读、写,用if语句描述來区分是否读或写,ifijcase语句则用描述RAM对某一个地址数据的操作。
五、主要技术重点、难点
本实验技术重点在于理解4X8位RAM的功能后,用VerilogHDL硬件描述语言来设计该电路;并掌握if及case语句的使用方法及技巧。
其难点是要仿真出4X8位RAM的工作波形,然后通过观测仿真波形,来验证RAM设计是否能完成相应的功能。
六、实验步骤
用VerilogHDL语言设计RAM的步骤:
(1)、运行MAX+PLUSII软件
(2)、启动Filc\New菜单命令(如图5-2);
(3)、选择TextEditorfile,点击OK后,键入上面“二、实验内容”中的程序;
(4)、在口录屮存成RAM.V文件,并按
“CtZ+Shift+J”将该文件设为一个Project工程,
然后进行编译。
图5-2新建文本文件的选择对话框
(5)、仿真设计文件
启动MAX+plusII\F订e\New菜单,如图5-3所示进入波形编辑环境,编辑RAM.V的波形文件,设置工作时钟elk的波形,并选择“二”图标加入数据及RAM地址,最后将波形文件以RAM.sef为波形文件名存盘。
执行仿真命令,启动仿真并观察仿真波形,并对设计电路的进行功能验证。
图5・3新建波形文件的选择对话框
七、实验报告要求
1.详细描述4X8位RAM的VerilogHDL语言设计及仿真步骤。
2.给出移位寄存器的仿真波形。
八、实验注意事项
1.使用VerilogHDL语言移位寄存器吋,其文件名(RAM.V)要与模块名[module
RAM(elk,d,q);]相同,且仿真的波形文件名[RAM.sef]也要相同。
2.在WaveformEditor仿真时,应先在菜单选项的Options/GridSize...中所弹出的对话框中将GridSize:
改为l.Ous;并菜单选项的File/EndTime..冲所弹出的对话框屮将GridSize改为lOO.Ous,以