实验讲义verilogQuartusII软件的使用资料.docx

上传人:b****8 文档编号:10044116 上传时间:2023-02-08 格式:DOCX 页数:14 大小:265.21KB
下载 相关 举报
实验讲义verilogQuartusII软件的使用资料.docx_第1页
第1页 / 共14页
实验讲义verilogQuartusII软件的使用资料.docx_第2页
第2页 / 共14页
实验讲义verilogQuartusII软件的使用资料.docx_第3页
第3页 / 共14页
实验讲义verilogQuartusII软件的使用资料.docx_第4页
第4页 / 共14页
实验讲义verilogQuartusII软件的使用资料.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

实验讲义verilogQuartusII软件的使用资料.docx

《实验讲义verilogQuartusII软件的使用资料.docx》由会员分享,可在线阅读,更多相关《实验讲义verilogQuartusII软件的使用资料.docx(14页珍藏版)》请在冰豆网上搜索。

实验讲义verilogQuartusII软件的使用资料.docx

实验讲义verilogQuartusII软件的使用资料

 

《硬件描述语言及应用》实验讲义

 

2015-2016年度第二学期

实验一、EDA软件使用

一、实验目的:

1、掌握MAX+PLUSⅡ软件的使用;

2、掌握文本编辑器和波形编辑器的使用。

二、实验仪器

微机一台。

三、实验原理

1、MAX+PLUSⅡ软件

MAX+PLUSII9.3界面友好,使用便捷,被誉为业界最易学易用的EDA软件。

支持原理图、VHDL和Verilog语言文本文件,以及波形与EDIF等格式的文件作为设计输入,并支持这些文件的任意混合设计。

MAX+PLUSII具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。

在适配之后,MAX+PLUSII生成供时序仿真用的EDIF、VHDL和Verilog三种不同格式的网表文件。

MAX+PLUSII支持主流的第三方EDA工具,如Synopsys、Cadence、Synplicity、Mentor、Viewlogic、Exemplar和ModelTechnology等。

MAX+PLUSII支持除APEX20K系列之外的所有AlteraFPG/CPLD大规模逻辑器件。

2、Verilog语言简介

(1)什么是VerilogHDL

VerilogHDL是硬件描述语言的一种,用于数字电子系统设计。

它允许设计者用它来进行各种级别的逻辑设计,可以用它进行数字逻辑系统的仿真验证、时序分析、逻辑综合。

它是目前应用最广泛的一种硬件描述语言之一。

(2)VerilogHDL的历史

VerilogHDL是在1983年由GDA(GateWayDesignAutomation)公司的PhilMoorby首创的。

PhilMoorby后来成为Verilog-XL的主要设计者和Cadence公司(CadenceDesignSystem)的第一个合伙人。

在1984年~1985年,Moorby设计出了第一个关于Verilog-XL的仿真器,1986年,他对VerilogHDL的发展又做出了另一个巨大贡献:

即提出了用于快速门级仿真的XL算法。

随着Verilog-XL算法的成功,VerilogHDL语言得到迅速发展。

1989年,Cadence公司收购了GDA公司,VerilogHDL语言成为Cadence公司的私有财产。

1990年,Cadence公司决定公开VerilogHDL语言,于是成立了OVI(OpenVerilogInternational)组织来负责VerilogHDL语言的发展。

(3)VerilogHDL的进展

基于VerilogHDL的优越性,IEEE于1995年制定了VerilogHDL的IEEE标准,即VerilogHDL1364-1995。

其后,又在2001年发布了VerilogHDL1364-2001标准。

据有关文献报道,目前在美国使用VerilogHDL进行设计的工程师大约有60000人,全美国有200多所大学教授用Verilog硬件描述语言的设计方法。

在我国台湾地区几乎所有著名大学的电子和计算机工程系都讲授Verilog有关的课程。

四、实验内容

编程实现约翰逊计数器,并用波形进行仿真。

实验前注意以下几点:

(1)新建一个工程之前一定要新建一个文件夹,后面产生的工程和原程序都保存在这个文件夹中;

(2)不同的工程最好放在不同的文件夹中,同一工程的所有文件都必须放在同一个文件夹中;

(3)保存路径为全英文。

1、程序输入、检查、编译

打开MAX+PLUSII软件,在File菜单里选择New,在弹出的窗口中选择第三项:

TextEditorfile,点OK。

 

在弹出的窗口中输入约翰逊计数器原程序,

 

约翰逊计数器是一种移位计数器,采用的是把输出的最高位取非,然后反馈送到最低位触发器的输入端。

约翰逊计数器在每个时钟下只有一个输出发生变化。

下面是约翰逊计数器的VerilogHDL实现代码。

modulejohnson(clk,rst,cnt);

inputclk,rst;

output[3:

0]cnt;

reg[3:

0]y;

assigncnt=y;

always@(posedgeclk)

begin

if(rst)y=0;

else

begin

y[3:

1]=y[2:

0];

y[0]=!

y[3];

end

end

endmodule

接下来是很关键的存盘工作,在存盘前,请在D盘根目录下新建一文件夹,名称为名字+学号,如zhangsan55。

选择菜单File→Save,在出来窗口中选择D盘,然后找到你新建的文件夹,注意一定双击一下。

然后在上面输入文件名johnson.v,完成点OK。

 

选择菜单File→Project→SetProjecttoCurrentFile。

接下来对程序进行检查,选择菜单File→Project→Save&Check,如果弹出如下窗口,表示检查无误通过,可以进行下一步。

如果显示有错误,仔细检查程序并修改,再次进行检查,直到无误通过。

 

检查无误后,选择File→Project→Save&Compile。

这一步一定要进行,完成后,留程序输入窗口,把多余窗口关掉。

2、波形仿真

新建一个波形文件,选择File→New,在弹出的窗口中选择WaveformEditorfile,点OK。

这时会发现多了一个菜单Node,选择Node→EnterNodesfromSNF…,在弹出窗口中点击List,然后在左边窗口选择需要的节点,这个程序因为是一个计数器,经过分析我们就选取clk,rst,cnt三个节点,点击中间的“=>”号,点击OK。

 

一般出来的波形窗口显示200ns左右,需要把时间段调一下,选择View→TimeRange,在弹出来的窗口中to后面输1000。

 

clk为时钟脉冲,时钟脉冲设置时,右键点击clk,选择Overwrite→Clock,点击OK,就设置完成。

如果觉得时钟脉冲周期较长,可以调一下间距,选择菜单Options→GridSize,设置间距后重新进行时钟脉冲设置。

rst的设置。

rst在程序中的作用是,当来一个时钟脉冲上升延时,如果当时rst为1,则对计数器进行清零,因此,rst应该基本为0,局部设为1。

在rst设置前最好把Options→SnaptoGrid前面的勾去掉。

 

设置完成,开始仿真,选择File→Project→Save,Compile&Simulate,波形文件选择自动存盘,直接点OK就行。

得到波形文件。

 

波形文件中发现输出cnt是16进制的,不能很好的反映约翰逊计数器的特点,因此需要把cnt改成2进制。

如图双击H所在位置,在弹出窗口中选择BIN,点OK。

 

最终得到约翰逊计数器的波形文件。

 

五、思考题

设计一个十六进制普通计数器。

实验二、3-8译码器设计

一、实验目的

1、掌握3-8译码器设计原理;

2、掌握3-8译码器的编程技巧。

二、实验仪器

微机一台

三、实验内容

译码器属于组合逻辑电路,它的逻辑功能是将二进制代码按其编码时的原意译成对应的输出高、底电平信号,又叫解码器。

在数字电子技术中,它具有非常重要的地位,应用也很广泛。

它除了常为其它集成电路产生片选信号之外,还可以作为数据分配器、函数发生器用,而且在组合逻辑电路设计中它可替代繁多的逻辑门,简化设计电路。

采用case语句实现的3-8译码器的VerilogHDL程序如下:

moduledecoder38(A,Y);

input[2:

0]A;

output[7:

0]Y;

reg[7:

0]Y;

always@(A)

begin

case(A)

3'b000:

Y=8'b10000000;

3'b001:

Y=8'b01000000;

3'b010:

Y=8'b00100000;

3'b011:

Y=8'b00010000;

3'b100:

Y=8'b00001000;

3'b101:

Y=8'b00000100;

3'b110:

Y=8'b00000010;

3'b111:

Y=8'b00000001;

default:

Y=8'bxxxxxxxx;

endcase

end

endmodule

在软件中对程序进行输入、检查、编译,并建立波形文件对译码器进行仿真,测试设计是否正确。

 

四、思考题

如何用if_else语句实现3-8译码器的设计?

实验三、4位乘法器的设计

一、实验目的

1、理解乘法器工作原理;

2、掌握乘法器的编程技巧。

二、实验仪器

微机一台

三、实验内容

下面是采用for语句4位乘法器的VerilogHDL实现。

moduleMULT4B(R,A,B);

parameterS=4;

output[2*S:

1]R;

input[S:

1]A,B;

reg[2*S:

1]R;

integeri;

always@(AorB)

begin

R=0;

for(i=1;i<=S;i=i+1)

if(B[i])

R=R+(A<<(i-1));

end

endmodule

在软件中对程序进行输入、检查、编译,并建立波形文件对译码器进行仿真,测试设计是否正确。

 

 

四、思考题

分别用while和repeat语句设计四位乘法器。

实验四、4位加法器的设计

一、实验目的

1、理解加法器工作原理;

2、掌握加法器的编程技巧。

二、实验仪器

微机一台

三、实验内容

加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成。

多位加法器的构成有两种方式:

并行进位和串行进位方式。

并行进位加法器设有进位产生逻辑,运算速度较快;串行进位方式是将全加器级联构成多位加法器。

并行进位加法器通常比串行级联加法器占用更多的资源。

随着位数的增加,相同位数的并行加法器与串行加法器的资源占用差距也越来越大。

因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。

下面是4位加法器的VerilogHDL实现。

moduleALU(A,B,S,Y);

input[3:

0]A,B;

input[1:

0]S;

output[7:

0]Y;

parameteradd=2'b00,reduce=2'b01,multiply=2'b10;

reg[7:

0]Y;

always@(AorBorS)

begin

case(S)

2'b00:

Y=A+B;

2'b01:

Y=A-B;

2'b10:

Y=A*B;

default:

Y=0;

endcase

end

endmodule

在软件中对程序进行输入、检查、编译,并建立波形文件对译码器进行仿真,测试设计是否正确。

 

四、思考题

如何用本设计中的4位加法器完成8位加法器的设计。

实验五、计数器的设计

一、实验目的

1、理解计数器工作原理;

2、掌握不同进制计数器的设计方法。

二、实验仪器

微机一台

三、实验内容

计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。

计数器种类繁多,在实际生活中被广泛应用各个领域,包括在工业生产方面、在数字系统方面、交通信号灯控制方面、切纸机械定位和电梯定位调速等方面,是日常生活中不可或缺的一种电子部件。

下面是含异步复位、同步计数使能和可预置功能的加法计数器的VerilogHDL实现。

moduleCNT10(CLK,RST,EN,LOAD,COUT,DOUT,DATA);

inputCLK,EN,RST,LOAD;

input[3:

0]DATA;

output[3:

0]DOUT;

outputCOUT;

reg[3:

0]Q1;regCOUT;

assignDOUT=Q1;

always@(posedgeCLKornegedgeRST)

begin

if(!

RST)Q1<=0;

elseif(EN)

begin

if(!

LOAD)Q1<=DATA;

elseif(Q1<9)Q1<=Q1+1;

elseQ1<=4'b0000;

end

end

always@(Q1)

if(Q1==4'h9)

COUT=1'b1;

elseCOUT=1'b0;

endmodule

在软件中对程序进行输入、检查、编译,并建立波形文件对译码器进行仿真,测试设计是否正确。

 

四、思考题

设计5位普通计数器并用仿真图验证。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1