FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

时间:2024-03-21 18:47:26

今天给大侠带来“FPGA学习系列 altera"系列,持续更新。此学习心得是本人之前所写,所用设计软件为Quartus II 13.1,现Quartus II 新版本已更新到19+,以下仅供初学者学习参考。后续会更新其他系列,敬请关注。话不多说,上货。

 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

添加激励

 

写完了设计和激励的代码,我们还是不能够去仿真。设计和激励都是verilog DHL 的文件,软件也分不清楚那个是设计文件、哪个是激励文件。下面我们就来告诉“它“哪个是激励文件。

1. 打开Assignments,点击settings。 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

2. 在左侧列表中,点击:EDA TOOLS Seetings-> simulation。

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

3. 选中Compile test bench ,然后点击Test Benches。

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

4. 然后点击NEW。

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

5. 填写激励的名称。

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

6. 找到激励文件。 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

7. 点击add。

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

8. 一直点击OK。

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

经过上述的步骤,我们成功地“告诉”软件哪个是激励了,下面我们就可以去仿真了。但是还有的小伙伴会有疑问,在第六篇提到的二选一多路选择器的设计的总模块名是Mux2_1,此篇怎么突然变成了Mux21。这个需要解释一下,此篇为故意操作,经过实践所得,本身之前设计模块名为 Mux21,由于该模块名在Modelsim里仿真会出现冲突问题,临时修订模块名为Mux2_1。本篇在下面提到的功能仿真部分会具体描述,功能仿真部分模块名改为了Mux_21,这样可以使得各位印象更加深刻,有助于理解。如果还是有不明白的小伙伴可以发邮件到我邮箱或者加群询问。

 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

功能仿真

 

功能仿真也被称作RTL级行为仿真,前仿真,目的是分析设计电路逻辑关系的正确性。缺点:不带有任何的门延时、线延时等等,只是理想情况下的仿真。优点:仿真速度快,可以根据需要观察电路输入输出端口和电路内部任一信号和寄存器的波形;

当添加完激励,我们就可以去调用modelsim来进行前仿。在查看波形之前,我们必须知道什么样的波形是正确的,否则,即使仿真出波形也是徒劳的。

1. 点击前仿真。 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

2. 等待出波形就可以了。 

在等待出波形的时候,modelsim报错,无法仿真。界面如下: 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

在命令的窗口里面,就报出了错误,说是找不到端口。我们都是按照“规矩”做的呀,那到底哪里错了呢?

具体的原因是:我们的代码并没有任何的错误,操作也没有任何的错误,而是我们的工程的名字和quartus ii 中的二选一多路选择器名称一样,modelsim在调用的时候,调用了quartus ii 内部的二选一多路选择器,所以导致找不到端口(笔者提醒大家:在给工程或者设计文件“起名字”时,要注意一些特殊的名字,例如:and,nand、xor、mux21等等)。

 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

那么怎么就可以用了呢?具体步骤如下:

1. 关闭modelsim 。

2. 修改顶层实体和激励。

1) 打开mux21设计文件,然后点击file->save as,命名为:“mux_21”。

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

2) 将模块名称改成:“mux_21”。 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

3) 将“mux_21”设置成为顶层实体。 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

4) 综合和分析,快捷键“Ctrl + K”。

 

5) 将激励文件中的例化改成如下: 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

6) 综合和分析,快捷键“Ctrl + K”。

7) 再一次去功能仿真,就可以了(因为我们添加过一次了,我们只是去修改了代码,所以不用重新添加激励)。

界面如下: 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

下面我们开始分析仿真波形:

1. 在波形界面点击一下。 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

2. 点击全局缩放。

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

3. 分析波形。

当“s”为高电平时,“c”等于“a”;当“s”为低电平时,“c”等于“b”;证明我们的设计正确。

 

FPGA学习altera系列: 第七篇 添加激励及功能仿真操作

 

具体的modelsim的使用方法,请参考后续的章节。如果有不明白的小伙伴可以发邮件到我邮箱或者加群询问。