2016-06-08 35 views
0

我在VHDL初學者和一些書,他們說行爲模式具有最高的抽象數據流模型具有中等水平的抽象結構模型具有低級別抽象造型的抽象水平如何合理的VHDL/Verilog的

它們是如何證明的? 並且應該在哪種情況下使用建模?

我假設時使用的行爲這是一個順序模型如下:

  if(all_doors_locked) then 
     ignition_start = 1; 

但其他兩種模式是併發的,我不能找到它們之間的任何差別,那麼

它們的抽象層次是如何變化的?當他們可以像上面的例子一樣使用?

+2

對不起,如果這是惱人的。我只是想正確地傳達我的問題! – george

回答

0

行爲模型:

always @ (*) 
begin 
    if(all_doors_locked) 
    ignition_start = 1'b1; 
    else 
    ignition_start = 1'b0; 
end 

數據流模型:

always @ (*) 
begin 
    ignition_start = all_doors_locked; 
end 

結構模型:

buf U1(ignition_start,all_doors_locked); 

綜觀 「行爲」 德可以將其分類爲設計方法,其中模塊在高度抽象的模型中進行建模,其中設計者定義模塊的期望行爲,綜合工具將該行爲分解爲RTL或結構模型。

不太抽象的是「RTL」或寄存器傳輸邏輯建模。這是許多從業人員說「數據流」開始。當我們實際寫入硬件,

assign Y = A & B; // AND operation  

最抽象爲「結構」造型在設計規定幾乎完全與連接寄存器和電線組件實例。

+0

謝謝你Prakash ji的回覆......數據流和結構模型本質上是並行的,它們之間沒有太大的區別......所以爲什麼它們的抽象級是變化的 - 它們之間的任何區別是什麼? – george

+0

您將看到大型複雜HDL代碼的差異。假設你已經爲10位計數器編寫代碼,用* data-flow *編寫代碼太容易了,但是當我們談論* tructural *時,它需要翻轉到翻轉連接。你會意識到抽象層次。 –

+0

謝謝ji,現在我可以實現抽象層次了。如果行爲模型非常容易使用LOGIC進行編碼,那麼在什麼情況下數據流和結構模型會有所幫助。如果你不介意可以引用一個例子在什麼情況下使用數據流和結構模型,而不是行爲模型 – george

0

結構門級是每個數字電路應該最終實現的。這是每個數字電路的硬件實現。但是,在一個大型的設計中,人類真的很難擁有一個非常大的網表,並掌握它並理解它在做什麼。

行爲模型就是我們人類的東西,很容易理解,因爲很多細節都被抽象掉了。但是,它並不總是可以輕易地轉換爲門。數據流(或RTL)位於中間的某個地方:理解它並不難,它可以以自動和系統的方式轉換爲門。這就是爲什麼許多設計師將這種抽象級別用於真實世界設計的原因。

軟件中的一個類比是對軟件應用程序(行爲模型)的高級描述。它是源代碼,例如C++類似於數據流級別,它編譯的機器代碼類似於結構門級網表。

+0

感謝dude ..我現在可以關聯一些比我以前的假設更好的水平... – george