標(biāo)題: FPGA學(xué)習(xí)日志 [打印本頁(yè)]

作者: 51黑fan    時(shí)間: 2016-1-30 04:35
標(biāo)題: FPGA學(xué)習(xí)日志
    使用乘積和就可以表達(dá)大部分的邏輯功能。使用兩個(gè)組合邏輯來實(shí)現(xiàn)這些功能。AND門建立乘積項(xiàng),OR門對(duì)乘積求和。在輸入上可以采用非門來置反輸入,以產(chǎn)生所需的功能。為了存儲(chǔ)輸出,或者使輸出與其他輸出同步,需要寄存器形式的同步邏輯。如果不需要存儲(chǔ)器或者同步,可以旁路輸出寄存器。采用TTL邏輯器件,在試驗(yàn)面包板上,或者印刷電路板上,用銅線把這些分立原件連在一起。把這些邏輯門和寄存器組合到一個(gè)器件中去。

    某些PAL包括了陣列反饋選項(xiàng),以實(shí)現(xiàn)更復(fù)雜的邏輯功能,還可以完全旁路輸出寄存器,以建立異步輸出。

      一個(gè)復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)往往是一個(gè)從算法到由硬件線連接的門級(jí)邏輯結(jié)構(gòu),再映射到硅片的逐步實(shí)現(xiàn)的過程。



         算法就是解決特定問題的有序步驟;數(shù)據(jù)結(jié)構(gòu)就是解決特定問題的相應(yīng)的模型。



          計(jì)算電路究竟是如何構(gòu)成的?為什么它能有效和正確執(zhí)行每一步程序?它能不能用另外一種結(jié)構(gòu)方案來構(gòu)成?運(yùn)算速度還能不能提高?所謂計(jì)算機(jī)微體系結(jié)構(gòu)就是回答以上問題,并從硬線邏輯和軟件兩個(gè)角度一起來探討某種結(jié)構(gòu)的計(jì)算機(jī)的性能潛力。



           用C語(yǔ)言配合Verilog HDL設(shè)計(jì)算法的硬件電路塊時(shí)考慮的三個(gè)主要問題:

           1.為什么選擇C語(yǔ)言與Verilog HDL配合使用?

           2.C語(yǔ)言與Verilog HDL的使用有何限制?

           3.如何利用C語(yǔ)言來加速硬件的設(shè)計(jì)和故障檢測(cè)?



           利用C語(yǔ)言完善的查錯(cuò)和編譯環(huán)境,設(shè)計(jì)者可以先設(shè)計(jì)出一個(gè)功能正確的設(shè)計(jì)單元,以此作為設(shè)計(jì)比較的標(biāo)準(zhǔn)。然后,把C程序一段一段地改寫成用并行機(jī)構(gòu)(類似于Verilog HDL)描述的C程序,此時(shí)還是在C 的環(huán)境里,使用的依然是C語(yǔ)言。如果運(yùn)行結(jié)果正確,就將C語(yǔ)言關(guān)鍵字用Verilog HDL相應(yīng)的關(guān)鍵字替換,進(jìn)入Verilog HDL的環(huán)境。將測(cè)試輸入同時(shí)加到C與Verilog HDL兩個(gè)單元,將其輸出做比較。這樣很容易發(fā)現(xiàn)問題的所在,然后更正,再做測(cè)試,直至正確無(wú)誤。剩下的工作就交給后面的設(shè)計(jì)工程師。



            C程序是順序結(jié)構(gòu),而Verilog HDL屬于并行結(jié)構(gòu)。



            C程序調(diào)用函數(shù)是沒有延時(shí)特性的,一個(gè)函數(shù)是唯一確定的,對(duì)同一個(gè)函數(shù)的不同調(diào)用是一樣的。而Verilog HDL中對(duì)模塊的圖同調(diào)用是不同的,即使調(diào)用的是同一模塊,必須用不同的名字來指定。Verilog HDL的語(yǔ)法規(guī)則很死,限制很多,能用的判斷語(yǔ)句有限。仿真速度較慢,查錯(cuò)功能差,錯(cuò)誤信息不完整。仿真軟件通常很貴,而且不一定可靠。C語(yǔ)言沒有時(shí)間關(guān)系,轉(zhuǎn)換后的Verilog HDL程序必須做到?jīng)]有任何外加的人工延時(shí)信號(hào),也就是必須表達(dá)為有限狀態(tài)機(jī),即RTL級(jí)的Verilog HDL;否則無(wú)法使用綜合工具把Verilog HDL源代碼轉(zhuǎn)化為門級(jí)邏輯。


作者: 51黑fan    時(shí)間: 2016-1-30 04:35


    目前FPGA中多使用4輸入的LUT。查找表本質(zhì)上就是一個(gè)RAM。每個(gè)LUT可以看做是一個(gè)4位地址線的16*1的RAM。當(dāng)用戶描述了一個(gè)邏輯電路以后,F(xiàn)PGA開發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能結(jié)果,并把結(jié)果事先寫入RAM。這樣每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就相當(dāng)于輸入一個(gè)地址進(jìn)行查找,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可。FPGA采用了邏輯電源陣列LCA這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB、輸出輸入模塊IOB和內(nèi)部連線三個(gè)部分。





    FPGA是一種包含很多相同的邏輯單元的集成電路,在結(jié)構(gòu)上和ASCII相似,具有很多觸發(fā)器和分布的布線資源。邏輯單元通過連線陣列和可編程開關(guān)實(shí)現(xiàn)互聯(lián)。用戶在設(shè)計(jì)時(shí)規(guī)定邏輯單元實(shí)現(xiàn)的邏輯函數(shù),并且選擇性地接通互聯(lián)陣列的連線,從而實(shí)現(xiàn)自己的簡(jiǎn)單設(shè)計(jì),結(jié)合這些簡(jiǎn)單的設(shè)計(jì)就能事先復(fù)雜的設(shè)計(jì)。FPGA設(shè)計(jì)軟件能自動(dòng)地對(duì)用戶輸入的電路圖,或硬件描述語(yǔ)言程序進(jìn)行翻譯,然后進(jìn)行布局布線。利用設(shè)計(jì)庫(kù)里大量的復(fù)雜的宏函數(shù)可以幫助用戶優(yōu)化設(shè)計(jì)。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1