什么是事务( Transaction )?
在傳統(tǒng)的設(shè)計(jì)中,軟件似乎不是硬件設(shè)計(jì)和驗(yàn)證工程師一開(kāi)始就關(guān)心的事情。RTL設(shè)計(jì)就是硬件設(shè)計(jì),而Testbench的設(shè)計(jì)目的就是激勵(lì)、響應(yīng)、檢查硬件的RTL設(shè)計(jì)的行為是否正確。Testbench是為驗(yàn)證RTL代碼而設(shè)計(jì),因此很多時(shí)候Testbench所完成的工作大部分都是軟件工作,在SoC 設(shè)計(jì)中更是如此。因此,實(shí)際上,采用C/C++等軟件語(yǔ)言更適合Testbench。Testbench大都是行為模型,所有的硬件描述語(yǔ)言都支持行為級(jí)建模。對(duì)于SystemC,行為級(jí)建模似乎更加重要。為了強(qiáng)調(diào)行為建模的重要性,在SystemC和 SystemVerilog逐漸流行的同時(shí),transaction level modeling事務(wù)處理級(jí)建模(TLM)被越來(lái)越多的使用。TLM建模從整體考慮現(xiàn)代電子系統(tǒng),從一開(kāi)始就迅速完成的高層次系統(tǒng)行為的描述,確定最佳系統(tǒng)架構(gòu)。此后,在該模型的基礎(chǔ)上,逐步將模型從更加抽象改進(jìn)為更加細(xì)化,軟件和硬件設(shè)計(jì)可以同時(shí)展開(kāi),混合驗(yàn)證,從而在保證設(shè)計(jì)優(yōu)化的情況下減少仿真時(shí)間以加速設(shè)計(jì)收斂。
Transaction,即事務(wù),是一個(gè)比較抽象的概念。在筆者看來(lái),一個(gè)事務(wù)就是只一次原子的操作或者通信行為,比如一次讀取存儲(chǔ)器的操作、一次寫(xiě)存儲(chǔ)器的操作、一個(gè)讀改寫(xiě)操作,甚至一次DMA操 作。原子在這里的含義是不能被打破或者中斷。 在一個(gè)總線系統(tǒng)中,總線的一次讀或者一次寫(xiě)操作通常會(huì)被認(rèn)為是事務(wù);在一個(gè)包通信系統(tǒng)中,發(fā)送一個(gè)包通常被認(rèn)為是一個(gè)事務(wù)。因此,從硬件的角度,一個(gè)事務(wù)是兩個(gè)實(shí)體(進(jìn)程、模塊、通道等)間的一次控制或者數(shù)據(jù)傳輸。從軟件的角度,一次事務(wù)通常被理解為一個(gè)函數(shù)調(diào)用。該調(diào)用的結(jié)果通常是參數(shù)被傳到被調(diào)用函 數(shù),返回值被傳回到調(diào)用函數(shù),該調(diào)用過(guò)程可能立刻返回,也可能因?yàn)榘l(fā)生阻塞在后來(lái)的某一個(gè)系統(tǒng)時(shí)間點(diǎn)返回。
總結(jié)
以上是生活随笔為你收集整理的什么是事务( Transaction )?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: c 获取char*的长度_C/C++编程
- 下一篇: python检测文件夹中新增文件_pyt
