简单的组合逻辑设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一简单的组合逻辑设计

一.实验目的:

(1)掌握基本组合逻辑电路的实现方法;

(2)初步了解两种基本组合逻辑电路的生成方法;

(3)学习测试模块的编写;

(4)通过综合和布局布线了解不同层次仿真的物理意义;

二.实验内容:

下面的模块的模块描述了一个可综合的数据比较器。从语句可以很容易看出,其功能是比较数据a与数据b的结果,如果两个数据相同,则给出结果1,否则给出结果0,在Verilog HDL中,描述组合逻辑时常用的assign结构。注意equal=(==b)?1:0,这是一种在组合逻辑实现分支判断的时常用的格式。

三.实验步骤:

1.Quartus的破解和使用:

一:安装:网上下载Quartus软件,按步骤安装;

二:破解:网上下载破解程序,按破解说明选择电脑位数,找到altera\13.0\quartus\bin64下的sys_cpt.dll文件(运行Quartus_II_13.0_x64破解器.exe后,直接点击“应用补丁”,如果出现“未找到该文件。搜索该文件吗?”,点击“是”,(如果直接把该破解器Copy到C:\altera\13.0\quartus\bin64下,就不会出现这个对话框,而是直接开始破解!)然后选中sys_cpt.dll,点击“打开”。安装默认的sys_cpt.dll路径是在C:\altera\13.0\quartus\bin下);

#把license.dat里的XXXXXXXXXXXX 用您的网卡号替换(在Quartus II 13.0的Tools菜单下选择License Setup,下面就有NIC ID)。

#在Quartus II 13.0的Tools菜单下选择License Setup,然后选择License file,最后点击OK。

#注意:license文件存放的路径名称不能包含汉字和空格,空格可以用下划线代替。如图:

三:创建设计文件:File—〉new,选择创建的文件类型如图:

输入源代码:

同理的需输入测试模块源代码,命名为t.v

四:创建项目:1.File下的New Project Wizard,添加项目,按顺序输入工作目录和项目名,如图:

2.点击Next;加入已有设计文件

点击Next——〉Next,如图:选择Verilog HDL

点击Finish,创建成功后在主界面左侧会有如图显示:

点击下图按钮进行编译:

编译成功后主界面显示如下:

五:1.下面添加测试模块,添加测试模块前需要先添加第三方仿真工具(一般安装软件时会自动安装);选择Tool——Options设置Model Sim路径如图:

2.添加测试模块:上面已经建立了测试模块的源程序按图示步骤添加:Assignments---Settings:

点击Test Benches:

点击New:

在Test bench name中输入测试文件名“t”,如上图所示添加完成之后连续点击“OK”。

六.测试模块添加完成后开始仿真:点击主界面上如图所示按钮后等待跳转:

会跳转出如下界面,待右方出现线条后点击途中黄线位置,然后点击下图左上方标示按钮:

会出现如下波形:

则实验测试结束。

四.实验源代码:

模块源代码的方法一:

module compare(equal,a,b);

input a,b;

output equal;

assign equal=(a==b)?1:0;

endmodule

模块代码的方法二:

module compare (equal,a,b);

input a,b;

output equal;

reg equal;

always @(a or b)

if(a==b)

equal=1;

else

equal=0;

endmodule

测试模块用于检测模块设计是否正确。它给出模块的输入信号,观察模块的内部信号和输出信号,如果发现结果与预期有偏差,则需要对设计模块进行修改。

测试模块源代码的方法之一:

…timescale lns/lns

…include “./compare.v”

module t;

reg a,b;

wire equal;

initial

begin

a=0

b=0

#100 a=0;b=1;

#100 a=1;b=1;

#100 a=1;b=0;

#100 a=0;b=0;

#100 $stop;

end

compare m(.equal(equal),.a(a),.b(b));

endmodual

综合就是把compare.v文件送到synplify或其他综合器处理,在选定实现器件和选取生成verilog网表的前提下,启动综合器的编译。综合器会自动生成一系列文件,向操作者报告综合的结果。其中生成的Verilog netlist文件(扩展名为.vm),表示自动生成的门级逻辑结构网表,仍然用Verilog语句表示,但比输入的源文件更具体,可以用测试模块调用他做同样的仿真,运行的结果更接近实际器件。

布局布线就是把综合后生成的另一文件,在布线工具控制下进行处理,启动布线工具的编译,布局布线工具会自动生成一系列文件,向操作者报告布局布线的结果,其中生成的Verilog netlist文件(扩展名为.vo),表示自动生成的具体基本门级结构和连接的延迟,仍然用Verilog基本部件结构语句和连接线的延迟参数的重新定义表示,库中的基本部件也更进一步具体化了,比综合后的扩展名为.vm的文件更具体,可以用同一个测试模块调用他做同样的仿真,运行结果与实际器件运行结果几乎完全一样。

测试模块源代码的方法之二:

相关文档
最新文档