当前位置:文档之家› EDA技术_实验指导书(MAX_PLUSII)

EDA技术_实验指导书(MAX_PLUSII)

目录

实验一 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型有限状态机的时序电路设计(EDA-07) (20)

主要参考文献 (22)

实验一 4选1数据选择器的设计

一、实验目的和任务

1、熟习MAX+PLUS II软件的使用;

2、掌握用原理图输入法和硬件描述语言(Verilog HDL)两种方法来设计逻辑电路;

3、通过电路的仿真及验证,进一步了解4选1数据选择器的功能;

二、实验内容

1、用原理图输入法来设计4选1数据选择器

参照按图1-1所示来编辑完成4选1数据选择器的原理图输入设计,其中a、b、c、d 为数据输入端,sel[1]、sel[0]为控制输入端,q为4选1数据输出端。存盘仿真后,观察仿真波形,以验证数据选择器的功能。

图1-1 4选1数据选择器原理图

2、用Verilog HDL硬件描述语言来设计4选1数据选择器

用MAX+plusII中的文本编辑器,编辑输入4选1数据选择器源程序:

module mux4_1( a, b, c, d, sel, q);

input a,b,c,d;

input [1:0]sel;

output q;

reg q;

always @( sel)

case(sel)

2’b00: q=a;

2’b01: q=b; 2’b10: q=c; 2’b11: q=d; endcase endmodule

程序中的a 、b 、c 、d 依然为数据输入端,sel[1]、sel[0]为控制输入端,q 为4选1

数据输出端。同样存盘后进行仿真,并观察仿真波形,以验证数据选择器的功能。

三、实验仪器、设备及材料

电脑、EDA 软件、实验箱、下载电缆、连接导线。

四、实验原理

4选1数据选择器的原理框图及真值表如图1-2及表1-1所示,sel[1:0]可能出现四种组合情况: 00 01 10 11,它分别对应选通四个不同的数据输入a 、b 、c 、d ,从q 端输出。结合以前所学数字电路的知识,可由真值表得出利用“与非门”实现的逻辑电路,进而可用MAX+PLUS II 原理图输入方法,设计出该4选1数据选择器;如应用EDA 技术所学的Verilog HDL 硬件描述语言来描述该电路功能,即可设计出该4选1数据选择器的源程序。

q Sel[1]输出

选择输入

0a 01b 00c 11

d

1

Sel[0]表1-1 真值表

图1-2 4选1数据选择器的原理框图

五、主要技术重点、难点

本实验技术重点在于理解4选1数据选择器的功能后,用原理图输入法和硬件描述语言(Verilog HDL )两种方法来设计该逻辑电路。 其难点是要仿真出4选1数据选择器的波形,然后通过观测仿真波形,来验证该数据选择器的功能。

六、实验步骤

(一)原理图输入法的设计步骤:

(1)进入Windows 操作系统,打开MAX+plus II 。

1、启动File \ Project Name 菜单,输入设计项目的名字MUX41。 点击Assign \ Device 菜单,选择器件(本设计选用EPF10K10)。

2、启动菜单File \ New ,选择Graphic Editor File

,打开原理图编辑器,进行原理图

d

a b c

设计输入。

(2)设计的输入

1. 放置4个三输入端与非门(nand3)、1个四输入端与非门(nand4),2个非门(not)

器件、及6个输入端(input)、1个输入端(output)在原理图上;

①在原理图的空白处双击鼠标右键,在出现窗体中的“Symbol Libraries:”一

栏中,从\maxplus2\max2lib\prim元件库中调出4选1数据选择器电路设计所

需要的元件;

②在光标处输入元件名称或用鼠标点取元件,按下OK即可。

③如果安放相同元件,只要按住Ctrl键,同时用鼠标拖动该元件。

④参照图1-1来安放相应的元件。

2. 添加连线到器件的管脚上

把鼠标移到元件引脚附近,则鼠标光标自动由箭头变为十字,按住鼠标右键拖动,即可画出连线,参照图1连好相应元件的输入、输出脚。

3.保存原理图

单击保存按钮,对于第一次输入的新原理图,出现类似文件管理器的图框,选择合适目录、合适名称保存刚才输入的原理图1-1 ,原理图的扩展名为.gdf,本实验中取名为mux41.gdf。

(3)编译

启动MAX+plus II \ Compiler菜单,按Start开始编译(如图1-3),并显示编译结果,生成.sof、.pof文件,以备硬件下载和编程时调用。同时生成.rpt文件,可详细查看编译结果。

图1-3 编译

(4)仿真设计文件

启动MAX+plus II \ File \ New菜单,如

图1-4所示进入波形编辑环境,编辑mux41.gdf

的波形文件,设置输入信号a、b、c、d和控制

信号sel[1]、sel[0]的电平。波形文件编辑结束

后以mux41.scf为波形文件名存盘。

执行仿真命令,启动仿真并观察仿真波形,

进行设计电路的功能验证。

图1-4 新建波形文件的选择对话框

(二)用Verilog HDL语言完成的设计步骤:

(1)、运行MAX+PLUS II软件

(2)、启动File \ New菜单命令(如图1-5);

(3)、选择Text Editor file,点击OK后,键

入上面“二、实验内容”中的程序;

(4)、在新的目录中存成mux_1.V 文件,并按

“Ctrl+Shift+J”将该文件设为一个Project工程,

然后进行编译。

(5)参照原理图输入设计进行仿真,并观察仿

真波形,以验证所设计电路的功能。

图1-5 新建文本文件的选择对话框

七、实验报告要求

1. 对于原理图设计要求有设计过程。

2. 详细论述实验步骤。

3. 给出原理图输入法和Verilog HDL语言设计两种方法的仿真波形。

八、实验注意事项

1. 使用原理图设计时,其文件名[mux41.gdf]要与仿真的波形文件名[mux41.scf]相同,只是文件的后缀不同;使用Verilog HDL语言设计时,其文件名(mux4_1.V)要与模块名[module mux4_1( a, b, c, d, sel, q);]相同,且仿真的波形文件名[mux4_1.scf]也要相同。

2. 用原理图输入法和Verilog HDL语言两种方法所做的设计,最好放在不同的目录中,且目录名不要出现中文字符。

3.在Waveform Editor仿真时,应先在菜单选项的Options/ Grid Size…中所弹出的对话框中将Grid Size:改为1.0us;并菜单选项的File/ End Time…中所弹出的对话框中将Grid Size改为100.0us,以方便观察、理解仿真得到的波形。

九、思考题

1. 如何用设计好的4选1数据选择器,来实现8选1数据选择器的设计(用原理图输入法来设计),试给出设计与仿真的结果。

2.谈谈使用原理图输入法和Verilog HDL语言设计两种方法的优劣心得。

实验二译码器的设计

一、实验目的和任务

1、熟习MAX+PLUS II软件的使用;

2、掌握用Verilog HDL硬件描述语言来设计3-8译码器及七段显示译码器;

3、通过电路的仿真和硬件验证,进一步了两种译码器的功能;

二、实验内容

1、要求用Verilog HDL语言设计一个3输入、8输出的3-8译码器,输出低有效。

用MAX+plusII中的文本编辑器,编辑输入3-8译码器的参考源程序:

module decoder3_8(a,y);

input [2:0]a;

output [7:0]y;

reg [7:0]y;

always @( a )

case ( a)

3'b000: y=8'b11111110;

3'b001: y=8'b11111101;

3'b010: y=8'b11111011;

3'b011: y=8'b11110111;

3'b100: y=8'b11101111;

3'b101: y=8'b11011111;

3'b110: y=8'b10111111;

3'b111: y=8'b01111111;

endcase

endmodule

程序中的a[2:0]为3个数据输入端,y[7:0]为8个数据输出端。编辑输入存盘后,要求进行仿真,并观察仿真波形,以验证3-8译码器的功能。

2、要求用Verilog HDL语言来设计七段显示译码器,用于控制共阴LED数码管显示“0, 1, 2, 3, 4, 5 , 6, 7, 8, 9, A, B, C, D, E, F”字符。要求该输入为4位二进制码,输出7位共阴LED数码管的a、b、c、d、e、f、g的控制位,以控制其显示相应的字符。

用MAX+plusII中的文本编辑器,编辑输入七段显示译码器的源程序:

module de_7(d, y);

input [3:0]d;

output [6:0]y;

reg [6:0]y;

always @( d )

case( d )

4’b0000: y=7’b1111110; 4’b0001: y=7’b0110000; 4’b0010: y=7’b1101101; 4’b0011: y=7’b1111001;

4’b0100: y=7’b0110011; 4’b0101: y=7’b1011011; 4’b0110: y=7’b1011111; 4’b0111: y=7’b1110000; 4’b1000: y=7’b1111111; 4’b1001: y=7’b1111011; 4’b1010: y=7’b1110111; 4’b1011: y=7’b0011111; 4’b1100: y=7’b1001110; 4’b1101: y=7’b0111101; 4’b1110: y=7’b1001111; 4’b1111: y=7’b1000111;

endcase endmodule

程序中的d [3:0]为4位二进制码的输入端,7位输出y[6:0] 对应共阴LED 数码管

的7位控制位:a 、b 、c 、d 、e 、f 、g 。同样存盘后进行仿真,并观察仿真波形,以验证七段显示译码器的功能。

三、实验仪器、设备及材料

电脑、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 3-8译码器的原理框图

y[7:0]

输 入 输 出

a[2:0] y[7:0]

000 11111110 001 11111101 010 ******** 011 11110111

输 入 输 出

a[2:0] y[7:0] 100 11101111 101 11011111 110 10111111

111 01111111 表2-1 3-8译码器真值表

2. 七段显示译码器的原理框图及真值表如图2-2及表2-2所示,4个输入d[3:0]可能出现16种组合情况;它的7个输出y[6:0]分别控制共阴LED 数码管的a 、b 、c 、d 、e 、f 、g 七段的亮/灭,从而显出对应的16个字符。

图2-2 七段显示译码器的原理框图

五、主要技术重点、难点

本实验技术重点在于理解3-8译码器、七段显示译码器的功能后,用Verilog HDL 硬件描述语言来设计两种译码器;并掌握always 、case 语句的使用。

其难点是要仿真出3-8译码器、七段显示译码器的波形,然后通过观测仿真波形,来验证相应译码器的功能。

六、实验步骤

(一)用Verilog HDL 语言设计3-8译码器的步骤:

(1)、运行MAX+PLUS II 软件 (2)、启动File\ New 菜单命令(如图2-3); (3)、选择Text Editor file ,点击OK 后,键 入上面“二、实验内容”中的程序;

(4)、在目录中存成decoder3_8.V 文件,并按 “Ctrl+Shift+J ”将该文件设为一个Project 工程, 然后进行编译。

图2-3 新建文本文件的选择对话框

(5)、仿真设计文件

表2-2 8421BCD 七段显示译码器真值表

输 入 输 出

d[3:0] y[6:0]

a,b,c,d,e,f,g

H"0" 1,1,1,1,1,1,0 H"1" 0,1,1,0,0,0,0 H"2" 1,1,0,1,1,0,1 H"3" 1,1,1,1,0,0,1

输 入 输 出

d[3:0] y[6:0]

a,b,c,d,e,f,g

H"4" 0,1,1,0,0,1,1 H"5" 1,0,1,1,0,1,1 H"6" 1,0,1,1,1,1,1 H"7" 1,1,1,0,0,0,0

输 入 输 出

d[3:0] y[6:0]

a,b,c,d,e,f,g

H"8" 1,1,1,1,1,1,1 H"9" 1,1,1,1,0,1,1 H"A" 1,1,1,0,1,1,1 H"B" 0,0,1,1,1,1,1

输 入 输 出

d[3:0] y[6:0]

a,b,c,d,e,f,g

H"C" 1,0,0,1,1,1,0 H"D" 0,1,1,1,1,0,1 H"E" 1,0,0,1,1,1,1 H"F" 1,0,0,0,1,1,1

a

b g

c

d

e

f

启动MAX+plus II \ File \ New菜单,如图2-4

所示进入波形编辑环境,编辑decoder3_8.V的波形文

件,设置输入信号a[2:0]的8种组合情况的值,并将

波形文件以decoder3_8.scf为波形文件名存盘。

执行仿真命令,启动仿真并观察仿真波形,并

对设计电路的进行功能验证。

(二)用Verilog HDL语言设计七段显示译码器

的步骤请参照3-8译码器的步骤进行。

图2-4 新建波形文件的选择对话框

七、实验报告要求

1. 详细论述两种译码器的Verilog HDL语言设计及仿真实验步骤。

2. 给出两种译码器设计仿真后的波形。

八、实验注意事项

1. 使用Verilog HDL语言设计3-8译码器/七段显示译码器时,其文件名(decoder3_8.V/de_7.V)要与模块名[module decoder3_8(a,y); /module de_7(d, y);]相同,且仿真的波形文件名[decoder3_8.scf/de_7.scf]也要相同。

2.所设计的两种译码器,最好放在不同的目录中,且目录名不要出现中文字符。

3.在Waveform Editor仿真时,应先在菜单选项的Options/ Grid Size…中所弹出的对话框中将Grid Size:改为1.0us;并菜单选项的File/ End Time…中所弹出的对话框中将Grid Size改为100.0us,以方便观察、理解仿真得到的波形。

九、思考题

1. 如何理解3-8译码器仿真过程中出现的毛刺现象?

2. 如果七段显示译码器驱动的是共阳LED数码管,又该如何设计与之对应的七段显示译码器?

实验三 带清零、使能的4位加法计数器设计

一、实验目的和任务

1、熟习MAX+PLUS II 软件的使用;

2、掌握用Verilog HDL 硬件描述语言来设计加法计数器;

3、通过电路的仿真和硬件验证,进一步了加法计数器的功能;

二、实验内容

1、要求用Verilog HDL 语言设计一个带清零、使能的4位加法计数器。

用MAX+plusII 中的文本编辑器,编辑输入该4位加法计数器的参考源程序:

module couter_1( clk,clr,en,q); input clk,clr,en; output [3:0]q; reg [3:0]q;

always @(posedge clk) if (!clr) q=0; else if (en) q=q+1; endmodule

程序中的clk 为计数时钟输入,clr 为清零输入控制端,en 为计数使能输入控制

端,q[3:0]为4位加法计数器的输出。

2、编辑存盘后,要求进行相应的仿真,并观察仿真波形,以验证该计数器的功能。

三、实验仪器、设备及材料

电脑、EDA 软件、实验箱、下载电缆、连接导线。

四、实验原理

带清零、使能的4位加法计数器的真值表 如表3-1所示,当清零端clr 为0时,将计数器 的输出q[3:0] 清零;当clr 为1时,且计数使能 en 为1时,才允许计数器进行加计数;而clr 为

1时,en 为0时,无论是否有时钟clk 来到,该

计数器始终处于保持状态(即禁止计数状态)。

五、主要技术重点、难点

本实验技术重点在于理解带清零、使能的4位加法计数器的功能后,用Verilog HDL

硬件描述语言来设计该加法计数器;并掌握always 、if 语句的使用。

表3-1 4位加法计数器功能表

其难点是要仿真出4位加法计数器的清零、计数使能、保持状态(即禁止计数状态)等情况的波形,然后通过观测仿真波形,来验证该加法计数器的功能。

六、实验步骤

用Verilog HDL语言设计带清零、使能的4位

加法计数器的步骤:

(1)、运行MAX+PLUS II软件

(2)、启动File\ New菜单命令(如图3-1);

(3)、选择Text Editor file,点击OK后,键

入上面“二、实验内容”中的程序;

(4)、在目录中存成couter_1.V 文件,并按

“Ctrl+Shift+J”将该文件设为一个Project工程,

然后进行编译。图3-1 新建文本文件的选择对话框

(5)、仿真设计文件

启动MAX+plus II \ File\ New菜单,如图3-2

所示进入波形编辑环境,编辑couter_1.V的波形文件,

设置清零clr、计数使能en的4种组合情况的值,以及

输入clk的时钟波形,并将波形文件以couter_1.scf

为波形文件名存盘。

执行仿真命令,启动仿真并观察仿真波形,并

对设计电路的进行功能验证。

图3-2 新建波形文件的选择对话框

七、实验报告要求

1. 详细论述带清零、使能的4位加法计数器的Verilog HDL语言设计及仿真步骤。

2. 给出4位加法计数器的清零、计数使能、保持状态(即禁止计数状态)等情况的仿真波形。

八、实验注意事项

1. 使用Verilog HDL语言设计4位加法计数器时,其文件名(couter_1.V)要与模块名[module couter_1( clk,clr,en,q);]相同,且仿真的波形文件名[couter_1.scf]也要相同。

2.在Waveform Editor仿真时,应先在菜单选项的Options/ Grid Size…中所弹出的对话框中将Grid Size:改为1.0us;并菜单选项的File/ End Time…中所弹出的对话框中将Grid Size改为100.0us,以方便观察、理解仿真得到的波形。

九、思考题

1. 如要将设计的加法计数器改为减法计数器,该如何修改设计?

2. 如要在所设计的4位加法计数器基础上增加一个进位位输出,又该如何修改设计?

实验四 8位移位寄存器的设计

一、实验目的和任务

4、熟习MAX+PLUS II软件的使用;

5、掌握用硬件描述语言(Verilog HDL)来设计移位寄存器电路;

6、通过电路的仿真和硬件验证,进一步了解8位移位寄存器功能。

二、实验内容

1、要求用Verilog HDL语言设计一个8位移位寄存器。

用MAX+plusII中的文本编辑器,编辑输入该8位移位寄存器的参考源程序:

module shiter8(clk,d,q);

input clk, d;

output [7:0]q;

reg [7:0]q;

integer k;

always @(posedge clk)

for (k=0;k<7;k=k+1)

begin

q[0]<=d;

q[k+1]<=q[k];

end

endmodule

程序中的clk为移位时钟输入,d为移位寄存器的数据输入,q[7:0]为8位移位寄存器的输出。

2. 编辑存盘后,要求进行相应的仿真,并观察仿真波形,以验证该移位寄存器的功能。

三、实验仪器、设备及材料

电脑、EDA软件、实验箱、下载电缆、连接导线。

四、实验原理

移位寄存器主要是将串行输入的数据依次移入到寄存中,可用于串行预置初值、串并转换等场合。它主要在时钟作用下依次左移(或右移),通过非阻塞性过程赋值及for循环语句来实现。

五、主要技术重点、难点

在于理解移位寄存器的工作原理后,用Verilog HDL语言的for循环语句、非阻塞性

过程赋值来设计该移位寄存器。

其难点是要仿真出移位寄存器的工作波形,然后通过观测仿真波形,来验证该移位寄存器的功能,并理解阻塞性过程赋值与非阻塞性过程赋值的区别。

六、实验步骤

用Verilog HDL语言设计移位寄存器的步骤:

(1)、运行MAX+PLUS II软件

(2)、启动File\ New菜单命令(如图4-1);

(3)、选择Text Editor file,点击OK后,键

入上面“二、实验内容”中的程序;

(4)、在目录中存成shiter8.V 文件,并按

“Ctrl+Shift+J”将该文件设为一个Project工程,

然后进行编译。图4-1 新建文本文件的选择对话框

(5)、仿真设计文件

启动MAX+plus II \ File \ New菜单,如图4-2

所示进入波形编辑环境,编辑shiter8.V的波形文件,

设置移位输入时钟clk的波形及输入数据d值,并将

波形文件以shiter8.scf为波形文件名存盘。

执行仿真命令,启动仿真并观察仿真波形,并

对设计电路的进行功能验证。

图4-2 新建波形文件的选择对话框

七、实验报告要求

1. 详细论述移位寄存器的Verilog HDL语言设计及仿真步骤。

2. 给出移位寄存器的仿真波形。

八、实验注意事项

1. 使用Verilog HDL语言移位寄存器时,其文件名(shiter8.V)要与模块名[module shiter8(clk,d,q);]相同,且仿真的波形文件名[shiter8.scf]也要相同。

2.在Waveform Editor仿真时,应先在菜单选项的Options/ Grid Size…中所弹出的对话框中将Grid Size:改为1.0us;并菜单选项的File/ End Time…中所弹出的对话框中将Grid Size改为100.0us,以方便观察、理解仿真得到的波形。

九、思考题

1. 试设计一下8位右移移位寄存器,并比较8位左移和右移移位寄存器不同点。

实验五深度为4的8位RAM设计

一、实验目的和任务

1.熟习MAX+PLUS II软件的使用;

2.掌握用硬件描述语言(Verilog HDL)来设计RAM电路;

3.通过电路的仿真和硬件验证,进一步了解RAM的功能及特点;

二、实验内容

1、要求用Verilog HDL语言设计一个深度为4的8位RAM电路。

用MAX+plusII中的文本编辑器,编辑输入该RAM电路的参考源程序:

module RAM(clk,din,ad,read,we,q);

input clk,we,read;

input [1:0]ad;

input [7:0]din;

output [7:0]q;

reg [7:0]q;

reg [7:0]a,b,c,d;

always @(posedge clk)

if (we)

case( ad)

2’b00: a=din;

2’b01: b=din;

2’b10: c=din;

2’b11: d=din;

endcase

always @(posedge clk)

if (read)

case( ad)

2’b00: q=a;

2’b01: q=b;

2’b10: q=c;

2’b11: q=d;

endcase

endmodule

程序中的输入clk为RAM工作时钟,ad[1:0]为输入地址信号,read、we 分别为读、写控制线,din[7:0]、q[7:0]分别RAM的数据输入、输出。

2. 编辑存盘后,要求进行相应的仿真,并观察仿真波形,以验证该RAM的功能。

三、实验仪器、设备及材料

电脑、EDA软件、实验箱、下载电缆、连接导线。

四、实验原理

4 X 8位RAM 的原理框图如图5-1所示, 两位地址ad[2:0]组成4位深度,read 、we 分别 控制RAM 的读、写,用if 语句描述来区分是否 读或写,而case 语句则用描述RAM 对某一个 地址数据的操作。

图5-1 RAM 的原理框图

五、主要技术重点、难点

本实验技术重点在于理解4 X 8位RAM 的功能后,用Verilog HDL 硬件描述语言来设计该电路;并掌握if 及case 语句的使用方法及技巧。

其难点是要仿真出4 X 8位RAM 的工作波形,然后通过观测仿真波形,来验证RAM 设计是否能完成相应的功能。

六、实验步骤

用Verilog HDL 语言设计RAM 的步骤: (1)、运行MAX+PLUS II 软件 (2)、启动File\ New 菜单命令(如图5-2); (3)、选择Text Editor file ,点击OK 后,键 入上面“二、实验内容”中的程序;

(4)、在目录中存成RAM .V 文件,并按

“Ctrl+Shift+J ”将该文件设为一个Project 工程,

然后进行编译。 图5-2 新建文本文件的选择对话框

(5)、仿真设计文件

启动MAX+plus II \ File \ New 菜单,如图5-3 所示进入波形编辑环境,编辑RAM .V 的波形文件,

设置工作时钟clk 的波形, 并选择“C

”图标 加入数据及RAM 地址,最后将波形文件以RAM .scf 为波形文件名存盘。

执行仿真命令,启动仿真并观察仿真波形,并 对设计电路的进行功能验证。

图5-3 新建波形文件的选择对话框 七、实验报告要求

1. 详细描述4 X 8位RAM 的Verilog HDL 语言设计及仿真步骤。

2. 给出移位寄存器的仿真波形。

八、实验注意事项

1. 使用Verilog HDL 语言移位寄存器时,其文件名(RAM .V )要与模块名[module

we D[7:0]

clk Ad[1:0]

read

RAM (clk,d,q);]相同,且仿真的波形文件名[RAM.scf]也要相同。

2.在Waveform Editor仿真时,应先在菜单选项的Options/ Grid Size…中所弹出的对话框中将Grid Size:改为1.0us;并菜单选项的File/ End Time…中所弹出的对话框中将Grid Size改为100.0us,以方便观察、理解仿真得到的波形。

九、思考题

1. 时序电路的特点?

2. 时序电路与组合电路的区别是什么?

实验六基于LPM函数的加法电路设计

一、实验目的和任务

1、熟习MAX+PLUS II软件的使用;

2、熟习使用LPM函数设计复杂的时序电路方法;

3、掌握锁定管脚、下载方法;

二、实验内容

1、要求用LPM函数设计一个带流水线的四位加法器,如果和大于等于15将使rlt为高,否则为低。

用MAX+plusII中的文本编辑器,编辑输入该加法电路的参考源程序:

module test_add(a, b, c, cot,rlt);

input [3:0]a,b;

output [3:0]c;

output cot;

output rlt;

reg rlt;

wire [4:0]ccot;

assign ccot[4:0]={cot,{c[3:0]}};

LPM_ADD_SUB adder4(.dataa(a) ,.datab(b),.result(c), .cout(cot));

defparam adder4.LPM_WIDTH=4;

defparam adder4.MAXIMIZE_SPEED=10;

defparam adder4.LPM_REPRESENTATION="UNSIGNED";

defparam adder4.LPM_PIPELINE=0;

always @(ccot)

if (ccot>=4'b1111)

rlt=1;

else

rlt=0;

endmodule

程序中的a[3:0]、b [3:0]分别为被加数、加数;c [3:0]为和;cot为进位;rlt为溢出位,如果和大于等于15将使rlt为高,否则为低。

2. 编辑存盘后,要求进行相应的仿真,并观察仿真波形,以验证该RAM的功能。

三、实验仪器、设备及材料

电脑、EDA软件、实验箱、下载电缆、连接导线。

四、实验原理

在电路中调用LPM 函数(又叫强函数),

即参数化的电路功能模块。MAX+PLUS II 软

件支持的LPM 函数种类较多,这里主要使用 有加减法功能的LPM_ADD_SUB 函数(其原 理框图如6-1所示。必须要设置好该LPM 函 数诸如加、减法控制器、其中一个加数是否为

常数、数据宽度等参数,让其实现相应的功能。

图6-1 具有加减法功能原理框 五、主要技术重点、难点

本实验技术重点在于掌握用Verilog HDL 语言来调用LPM 函数,以设计出一个带流水线的四位加法器;

其难点是要学会设置LPM 函数的进出端口参数;且仿真出四位加法器的工作波形。

六、实验步骤

用Verilog HDL 语言设计RAM 的步骤: (1)、运行MAX+PLUS II 软件 (2)、启动File\ New 菜单命令(如图6-2); (3)、选择Text Editor file ,点击OK 后,键 入上面“二、实验内容”中的程序;

(4)、在目录中存成test_add .V 文件,并按 “Ctrl+Shift+J ”将该文件设为一个Project 工程,

然后进行编译。 图6-2 新建文本文件的选择对话框

(5)、仿真设计文件

启动MAX+plus II \ File\ New 菜 单,进入波形编辑环境, 编辑test_add .V

的波形文件,选择“C

”图标分 别设置被加数、加数a[3:0]、b [3:0],最 后将波形文件以test_add .scf 为波形文 件名存盘。执行仿真命令,启动仿真并 观察仿真波形,并对设计电路的进行功 能验证。

(6)、锁定管脚、编程下载。 1)锁定管脚方法:

启动MAX+plus II \ Floorplan Editor 菜单命令,出现如图6-3所示的画面: Floorplan Editor 显示该设计项目的管脚

分配。这是由软件自动分配的。用户可

随意改变管脚分配。 图6-3 分配管脚的对话框

进位被加数

被减数

加数减数

和进位

管脚编辑过程如下:

用鼠标按住某输入/输出口名称,并拖到下面芯片的某一管脚上,松开鼠标左键,便完成一个管脚的分配。

注意:芯片上有一些特定功能管脚,进行管脚编辑时一定要注意。另外,在芯片选择中,如果选Auto,则不允许对管脚进行再分配。

2)、器件下载:

1、启动MAX+plus II \ Programmer菜单。

2、选择JTAG \ Multi-Device JTAG Chain菜单项。

3、启动JTAG \ Multi-Device JTAG Chain Setup…菜单项。

4、点击Select Programming Fi le…按钮,选择要下载的.sof文件。然后按Add加到

文件列表中。

5、按Configure按钮完成下载。

注意:如果不能正确下载,可点击Detect JTAG Chain Info按钮进行测试,查找原因,最后按OK退出。

七、实验报告要求

1. 详细描述用LPM函数来设计带流水线的四位加法器及其仿真步骤。

2. 给出四位加法器的仿真波形。

八、实验注意事项

1. 使用Verilog HDL语言设计移位寄存器时,其文件名(test_add.V)要与模块名[module test_add(a, b, c, cot,rlt);]相同,且仿真的波形文件名[test_add.scf]也要相同。

2.在Waveform Editor仿真时,应先在菜单选项的Options/ Grid Size…中所弹出的对话框中将Grid Size:改为1.0us;并菜单选项的File/ End Time…中所弹出的对话框中将Grid Size改为100.0us,以方便观察、理解仿真得到的波形。

九、思考题

1、在仿真时rlt信号会出现毛刺,应如何消除该信号中的毛刺?

2、如要将该电路改为一个减法器,又该如何设计?

实验七综合实验 - Moore型有限状态机的时序电路设计

一、实验目的和任务

1、熟习MAX+PLUS II软件的使用;

2、掌握用硬件描述语言(Verilog HDL)来设计有限状态机电路;

3、通过电路的仿真和硬件验证,进一步了解的有限状态机功能;

二、实验内容

1、要求用Verilog HDL语言设计如下Moore(摩尔)型有限状态机:

a==0

图7-1 摩尔型有限状态机

说明:图7-1中的a为输入信号,z为输出信号。

2、要求对所作的设计进行相应的仿真,并观察仿真波形,以验证该其正确性。

三、实验仪器、设备及材料

电脑、EDA软件、实验箱、下载电缆、连接导线。

四、实验原理

Moore型有限状态机的工作方式是根据控制信号,在时钟clk的作用下,按照预先设定的状态进行顺序运行的,状态机是纯硬件数字系统中的顺序控制电路,是实现高频率、高可靠逻辑控制的重要途径。同时状态机容易构成性能良好的同步时序逻辑电路。

五、主要技术重点、难点

本实验技术重点在于学习并掌握用Verilog HDL语言,来描述Moore型有限状态机的状态转移;

相关主题
文本预览
相关文档 最新文档