- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA1-5实验报告打印部分
实验一 全加器设计
六、实验步骤
1、为本项工程设计建立文件夹 :文件夹取名为ghch,路径为d:\ghch。
2、建立原理图文件工程和仿真
原理图编辑输入流程如下:
打开原理图编辑窗。打开QuartusⅡ,选菜单File→new,选择原理图文件编辑输入项Block Diagram/Schematic File,按OK键。
建立一个初始化原理图。在编辑窗口点击右键,在弹出菜单中选择输入元件项Insert→Symbol,将元件调入原理图编辑窗口中
原理图文件存盘。选择菜单File→Save As,将此原理图存于刚才建立的目录d:\ghch中,取名为h_adder.bdf。
建立原理图文件为顶层设计工程。然后将此文件h_adder.bdf设定为工程。
绘制半加器原理图。将元件放入原理图编辑窗口,按图1接好电路。
仿真测试半加器。全程编译后,打开波形编辑器。选择File→new命令,在New窗口中选择Vector Waveform File选项。设置仿真时间区域,编辑输入波形,仿真器参数设置,启动仿真器,观察仿真结果。
3、将设计项目(一位半加器)设置成可调用的元件
为了构成全加器的顶层设计,必须将以上设计的半加器h_adder.bdf设置成课调用的底层元件。在半加器原理图文件处于打开的情况下,选择菜单File→Create/Update→Create Symbol Files for Current File,即可将当前电路图变成一个元件符号存盘,以便在高层次设计中调用。
图3 半加器示意图
图1 半加器h_adder电路
半加器仿真
4、设计全加器顶层文件
为了建立全加器顶层文件,必须再打开一个原理图编辑窗口,方法同前。
选择菜单File→new→Block Diagram/Schematic File,将其设置成新的工程,命名为f_adder.bdf。
在打开的原理图编辑窗口中,双击鼠标,选择Project下先前生成的元件h_adder和若干元器件,按图2连接好一位全加器电路图。
仿真测试全加器。全程编译后,打开波形编辑器。选择File→new命令,在New窗口中选择Vector Waveform File选项。设置仿真时间区域,编辑输入波形,仿真器参数设置,启动仿真器,观察仿真结果。
图4 一位全加器示意图
图4 一位全加器示意图
一位全加器的仿真波形图
4)仿真成功后得到了预期的设计效果后,将引脚锁定。方法如下:选择assignment中的pins,将To栏的信号锁定到相应的Location引脚列中。引脚号对应关系可以从实验手册中查找,结果如图所示:
5)引脚锁定以后,再编译全程编译一次,然后编程下载,选择Tools-programmer菜单,设计好编程硬件后点击Start开始下载。
6)下载成功后在硬件上检测设计思路的是否正确。
七 、硬件测试结果
实验开关K1,K2,K3打开和关闭后LED灯可以按照表格要求亮暗,实验成功。
实验二 模可变计数器设计
(四)实验程序
module count (clk,m,en,rst,SG,sel,led );
input clk,m,en,rst;
//output [11:0] q;
output [7:0] SG;
output [2:0] sel;
output [0:0] led;
(* synthesis, keep *) reg clk1;
(* synthesis, keep *)wire [3:0] gw,sw,bw;reg [3:0]a;reg [0:0] led;
reg [11:0] q;
reg [11:0] model;
reg [7:0] cnt,SG;
reg [2:0] sel;
always @(posedge clk)
begin cnt=cnt+1;
if (cnt==200) begin clk1=1b1; cnt=0; end
else clk1=1b0;
end //120分频,CLK为数码管扫描频率,CLK1为计数频率
always @(posedge clk)
begin
if (sel6) sel=sel+1; else sel=4;
end //sel为数码管选择
always @(sel) begin
case (sel)
6: a=gw; //0数码管为个位
5: a=sw; //1数码管为十位
4: a=
文档评论(0)