VHDL是一種面向對象的語言嗎?
01-08
題主是一條大二計科狗,目前正在同時學Java和VHDL,都處在尚未入門的階段。之前只學過C,對面向對象沒有什麼了解。但是在學習過程中,漸漸體會到VHDL和Java有很多可類比之處,如:
- 設計實體和類。設計實體包含了實體(埠定義)和結構體(電路功能),類包含了成員變數和成員方法;以及文件名需跟實體名/類名一致。
- 結構中各語句的並行執行,以及類中各成員方法的執行沒有一個確定順序,而是根據main函數中的需要來調用(抱歉不知道該怎麼表述)。
- 進程的順序執行和單個成員方法內部的順序執行。
- 元件的例化和為一個類創建一個對象。
如此,我不禁懷疑是否VHDL就是一種面向對象的語言,或者說有面向對象的思想在裡面。我是那種思而不學的類型,對面向對象甚至還沒有一個清晰的概念,如果錯得太幼稚還請指正。
當然不是。還是面向過程的語言(嚴格來講是面向硬體)。
你說的這些,verilog也有,但是verilog不是面向對象的語言,systemverilog才是。
順序執行和並行執行,都是硬體設計的基本語法特點,與面向對象無關。例化也是,C語言也有函數可以例化,也有介面的概念。區別面向對象與面向過程的本質在於:繼承與多態。這是我讀研的時候,老師反覆強調的。沒有繼承和多態,就算封裝做的再好再高級,也不是真正的面向對象。
systemverilog就有繼承和多態,所以它是真正的面向對象的語言。從原教旨主義面向對象來說……不是……繼承多態這些沒有……
它們不是一個概念
你覺得像那是因為vhdl剛出來的時候模仿對象是ada 但那只是模塊化了還不夠oo
後來的system verilog就更oo了
你這麼說 看來你對面向對象語言的理解還不夠深刻
推薦閱讀:
※如何從零開始學精EDA技術(Verilog-HDL )?
※如何看待京微雅格的倒閉?
※數字集成電路設計前端就是用verilog寫寫代碼描述下我想要的功能嗎?