如何创建您的第一个 VHDL 程序:Hello World!
在学习一门新的编程语言时,我总是喜欢从学习如何打印开始。当你掌握输出“Hello World!”时,你就知道你已经让环境工作了。它还向您展示了该语言的基本框架,即产生任何输出所需的最少代码。
你可能会想:但 VHDL 是一种硬件描述语言,它怎么能输出任何文本呢?你需要一个连接到 FPGA 或其他东西的屏幕,以及介于两者之间的各种逻辑,这一点都不简单。虽然这一切都是真的,但让我们暂时忘掉 FPGA 和 ASIC,把注意力集中在 VHDL 语言上。
这篇博文是基本 VHDL 教程系列的一部分。
VHDL可以被认为是一种并行编程语言,因此我们可以使用这种程序员的方法来学习它。由于我们使用该语言来描述数字电路,因此我们可以在计算机上运行它的唯一方法是使用 模拟器 ,而且模拟器绝对可以输出“Hello World!”到屏幕上。
如何免费安装 VHDL 模拟器和编辑器
运动
本视频教程将向您展示如何创建您的第一个 VHDL 程序:
我们创建的最终代码:
entity T01_HelloWorldTb is end entity; architecture sim of T01_HelloWorldTb is begin process is begin report "Hello World!"; wait; end process; end architecture;
当我们在 ModelSim 中按下运行按钮时,模拟器控制台的输出:
VSIM 2> run # ** Note: Hello World! # Time: 0 ns Iteration: 0 Instance: /t01_helloworld
分析
在前两行,我们声明了 entity .模块的实体声明其输入和输出。为了能够在模拟器中运行模块,它不能有任何输入或输出。因此,我们的模块除了一个空的实体声明之外没有其他任何东西。
接下来,我们声明了架构 的模块。虽然实体是模块与外部世界的接口,但架构是其内部实现。一个模块可能有几种架构,可以与同一个实体一起使用。在这一点上我不会太担心这些事情,因为它们是高级 VHDL 功能。
在架构内部,我们声明了一个进程 .目前,我们可以将进程视为程序中的一个线程,其中的事情是按顺序发生的。
在这个过程中,我们打印“Hello World!”使用 report
关键词。在下一行,有一个 wait;
.当模拟器达到这条线时,不会再发生任何事情了。该过程将永远在这里等待。
当我们在 ModelSim 中模拟这个设计时,我们可以看到“Hello World!”被打印到控制台输出。在那之后,什么都没有发生。
外卖
- 您可以将进程视为程序线程
report
语句将文本打印到模拟器控制台- 进程的执行将永远等待
wait;
声明
转到下一个教程 »
VHDL