我明白模块基本上就像C++函数。但是,我没有找到像调用这些函数的main()部分。没有main()部分,它如何工作?Verilog没有main()这样的东西?
回答
试图找到(或概念力)一个main(),相当于在HDL是错误的方式去学习HDL - 它会阻止你进步。对于可合成的描述,你需要从连续思考(一条指令依次运行)到“并行”思考(所有内容正在运行全部时间)。在精神上,从左到右看你的代码,而不是从上到下,你可能会意识到main()的概念并不是那么有意义。在HDL中,我们不“调用”函数,我们实例化模块并将它们的端口连接到网络;再一次,你需要改变你对过程的心理看法。
一旦你得到它,它会变得更光滑...
请记住,Verilog的正常使用是建模/描述电路。当你通电时,所有的电路开始运行,所以你需要编写你的复位逻辑来让每个电路进入稳定的可用操作状态。通常情况下,您将包含重置行并针对此进行初始化。
的Verilog有initial
块是有点像main()
在C.这些是计划从时间0运行的Verilog可以有多个initial
块,虽然语句,即并发执行的列表。
always
块也将作为main()
如果他们已经空敏感列表:
always begin // no sensitivity list
s = 4;
#10; // delay statements, or sim will infinite loop
s = 8;
#10;
end
如果你没有在这些块内部实例化一个模块会怎么样。它仍然运行? – 2011-02-27 08:23:03
他们这样做,如果他们的输入是敏感的任何值被扭曲。 – Marty 2011-02-27 09:00:25
- 1. 有没有Perabyte这样的东西?
- 2. .NET中有MessageQueueWatcher这样的东西吗?
- 3. 有没有像ISerializable这样的适用于XMLSerializer的东西?
- 4. 有没有可写的VirtualPathProvider这样的东西?
- 5. 播客的IMAP有没有这样的东西?
- 6. Grails在Rails中有没有像acts_as_tree这样的东西?
- 7. NEON有没有像“emms”这样的东西?
- 8. 有没有沙发基地篮子这样的东西?
- 9. 有没有像CURLOPT_CONNECTIONTIMEOUT这样的东西存在?
- 10. 在Drupal之外有没有CCK这样的东西?
- 11. 有没有像SMTP到FTP网关这样的东西?
- 12. 有没有C++解释器这样的东西?
- 13. 有没有像缓存grep这样的东西?
- 14. Eshell - 有没有像open-eshell这样的东西?
- 15. 有没有'Unicode整理'这样的东西?
- 16. D-Bus:有没有“D-Bus嗅探器”这样的东西?
- 17. 有没有这样的东西作为一个HTTP shell?
- 18. Fortran编译器没有这样的东西吗?
- 19. 有没有像''的东西?
- 20. 东西像FindBugs这样的.NET/C#
- 21. 如何创建这样的东西
- 22. 我如何模拟这样的东西?
- 23. 有没有这样的东西作为一个有效的HTML5片段?
- 24. Chrome浏览器的“Tamper Data firefox plugin”有没有这样的东西?
- 25. 有没有更简单的方法来制作这样的东西?
- 26. 有没有像虚拟COM端口收据打印机这样的东西?
- 27. 有没有像redis中的get_next那样的东西?
- 28. 有没有像C#中的Bundle一样的东西?
- 29. Vuex中有没有和Redux中的mapDispatchToProps一样的东西?
- 30. 有没有像DV模拟器那样的东西?
没有“开始”;这一切都发生在一次。 – 2011-02-27 04:29:32
Verilog的目标是什么?合成编码与测试平台编码不同。 – 2011-02-27 21:20:29
与main()最接近的是最外层的顶层模块,并且它可以被命名为任何你喜欢的不限于Start或main()或条目或类似的东西。在该模块中,您将看到引用的其他模块,类似于从main()调用其他函数。 – 2011-03-01 19:58:50