VHDL是一種面向對象的語言嗎?

題主是一條大二計科狗,目前正在同時學Java和VHDL,都處在尚未入門的階段。之前只學過C,對面向對象沒有什麼了解。但是在學習過程中,漸漸體會到VHDL和Java有很多可類比之處,如:

  • 設計實體和類。設計實體包含了實體(埠定義)和結構體(電路功能),類包含了成員變數和成員方法;以及文件名需跟實體名/類名一致。
  • 結構中各語句的並行執行,以及類中各成員方法的執行沒有一個確定順序,而是根據main函數中的需要來調用(抱歉不知道該怎麼表述)。
  • 進程的順序執行和單個成員方法內部的順序執行。
  • 元件的例化和為一個類創建一個對象

如此,我不禁懷疑是否VHDL就是一種面向對象的語言,或者說有面向對象的思想在裡面。我是那種思而不學的類型,對面向對象甚至還沒有一個清晰的概念,如果錯得太幼稚還請指正。


當然不是。還是面向過程的語言(嚴格來講是面向硬體)。

你說的這些,verilog也有,但是verilog不是面向對象的語言,systemverilog才是。

順序執行和並行執行,都是硬體設計的基本語法特點,與面向對象無關。

例化也是,C語言也有函數可以例化,也有介面的概念。

區別面向對象與面向過程的本質在於:繼承與多態。這是我讀研的時候,老師反覆強調的。

沒有繼承和多態,就算封裝做的再好再高級,也不是真正的面向對象。

systemverilog就有繼承和多態,所以它是真正的面向對象的語言。


從原教旨主義面向對象來說……不是……繼承多態這些沒有……


它們不是一個概念


你覺得像那是因為vhdl剛出來的時候模仿對象是ada 但那只是模塊化了還不夠oo

後來的system verilog就更oo了


你這麼說 看來你對面向對象語言的理解還不夠深刻


推薦閱讀:

如何從零開始學精EDA技術(Verilog-HDL )?
如何看待京微雅格的倒閉?
數字集成電路設計前端就是用verilog寫寫代碼描述下我想要的功能嗎?

TAG:Java | 面向對象編程 | EDA | VHDL |