- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
江西科技师范大学
实 验 报 告
课 程 EDA技术与verilog实验
系 别
报
告
规
格
一实验目的
二实验原理
三实验仪器
四实验方法及步骤
实验记录及数据处理
误差分析及问题讨论
EDA实验箱使用
一.实验目的
1.GW48教学实验系统原理与使用介绍
2.熟悉QuartusII两种输入方式下编译、仿真简单的组合电路。
二.实验内容
首先了解GW48系统使用注意事项以及GW48系统主板结构与使用方法,接着对各实验电路结构图特点与适用范围简述。最后在QuartusII界面下,用文本输入和图形输入分别验证九选一多路选择器的功能。
三.程序清单
文本输入如下所示:
module mux91a(a0,a1,a2,a3,a4,a5,a6,a7,a8,out6,sel);
input a0,a1,a2,a3,a4,a5,a6,a7,a8;
input [3:0] sel;
output out6;
reg out6;
always @ (a0,a1,a2,a3,a4,a5,a6,a7,a8)
begin
case (sel)
0:out6=a0;
1:out6=a1;
2:out6=a2;
3:out6=a3;
4:out6=a4;
5:out6=a5;
6:out6=a6;
7:out6=a7;
8:out6=a8;
default:out6=0;
endcase
end
endmodule
图形输入如下所示:
实验步骤
1、新建一个名称为MUX91a的工程,并在该文件夹中新建一个MUX91a.v的文件。
2、编译代码,编译成功后进行第三步,若不成功则查改代码中的错误。
3、在工程文件夹中新建一个MUX91a.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。
验证输出端口波形是否达到四选一多路选择器的功能。
仿真波形如下图所示。
实验二 用原理图和VerilogHDL语言设计一位全加器
一.实验目的
熟悉在QuartusII下用原理图和VerilogHDL语言设计一位全加器。
二.实验内容
在QuartusII下用原理图和VerilogHDL语言设计一位全加器,并编译、仿真验证其功能。
三.程序清单
全加器顶层文件设计:
半加器描述:
或门描述:
图形输入如下所示:
四.实验步骤
1、新建一个名称为f_adder的工程,并在该文件夹中新建一个f_adder.bdf的文件。
2、新建一个名称为h_adder.v的文件。
3、编译工程,编译成功后进行下一步,若不成功则查改错误。
4、在工程文件夹中新建一个f_adder.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。
验证输出端口波形是否实现一位全加器的功能。
仿真波形如下图所示。
实验三 含异步清0和同步时钟使能的4位加法计数器
一.实验目的
熟悉在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器。
二.实验内容
在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器,并编译、仿真验证其功能。
三.程序清单
计数器顶层文件设计:
module CNT10(clk,rst,en,dout,cout);
input clk,rst,en;
output [3:0]dout;
output cout;
reg [3:0]q1;
reg cout;
assign dout=q1;
always @(posedge clk or negedge rst)
begin
if(!rst)
q1=0;
else if(en)
begin
if(q1==4h9)
begin
cout=1b1;
q1=4b0000;
end
else
begin
cout=1b0;
q1=q1+1;
end
end
end
endmodule
module CNT60(clk,rst,en,shi,ge,cout);
input clk,rst,en;
output shi,ge;
output cout;
reg [3:0]ge,shi;
reg cout;
always @(posedge clk or negedge rst)
begin
if(!rst)
begin
ge=0;
shi=0;
cout=0;
end
else if(en)
begin
if((ge==9)(shi==5))
begin
ge=0;
shi=0;
cout=1;
end
else
begin
if(ge==9)
begin
ge=0;
shi=shi+1;
end
els
文档评论(0)