欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      學(xué)習(xí)FPGA verilog的心得--編程技巧--如何寫代碼減少邏輯單元的使用數(shù)量

      時(shí)間:2019-05-15 10:19:59下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《學(xué)習(xí)FPGA verilog的心得--編程技巧--如何寫代碼減少邏輯單元的使用數(shù)量》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《學(xué)習(xí)FPGA verilog的心得--編程技巧--如何寫代碼減少邏輯單元的使用數(shù)量》。

      第一篇:學(xué)習(xí)FPGA verilog的心得--編程技巧--如何寫代碼減少邏輯單元的使用數(shù)量

      一....盡量不要使用“大于”“小于”這樣的判斷語(yǔ)句, 這樣會(huì)明顯增加使用的邏輯單元數(shù)量.看一下報(bào)告,資源使用差別很大.例程:always@(posedge clk)

      begin

      count1=count1+1;

      if(count1==10000000)

      feng=1;//no_ring

      else if(count1==90000000)

      begin

      feng=0;//ring

      count1=0;

      end

      end//這么寫會(huì)用107個(gè)邏輯單元

      // 如果把這句話if(count1==10000000)改成大于小于,報(bào)告中用了135個(gè)邏輯單元

      二.....一定要想盡辦法減少reg寄存器的長(zhǎng)度

      上次把[30:0]改到[50:0],報(bào)告里邏輯單元從100多直升到2000多!!太嚇人了,至于為什么我就不知道了哈!

      三....case語(yǔ)句里一定要加defaultif一定要加else

      如果是組合邏輯的設(shè)計(jì),不加default或else的話,不能保證所有的情況都有賦值,就會(huì)在內(nèi)部形成一個(gè)鎖存器,不再是一個(gè)純粹的組合邏輯了,電路性能就會(huì)下降.例如:case({a,b})

      2'b11 e=b;

      2'b10e=a;

      endcase

      //不加default,雖然只關(guān)心a=1時(shí)的結(jié)果,但是a=0的時(shí)候,e就會(huì)保存原來的值,直到a變?yōu)?

      //那么e要保存原來的值,就要在內(nèi)部生成鎖存器了.四....盡量使用Case語(yǔ)句而不是if--else語(yǔ)句

      復(fù)雜的if--else語(yǔ)句通常會(huì)生成優(yōu)先級(jí)譯碼邏輯,這將會(huì)增加這些路徑上的組合時(shí)延用來產(chǎn)生復(fù)雜邏輯的Case語(yǔ)句通常會(huì)生成不會(huì)有太多時(shí)延的并行邏輯

      五...組合邏輯的always塊中,要注意所有的輸入全部放入敏感變量表里

      比如:always@(a or b)

      begin

      out=(a&b&c);

      end

      此時(shí)生成的不是純的組合邏輯,因?yàn)楫?dāng)C變化時(shí),out不會(huì)立刻發(fā)生變化(需要等到a或b變化,c的變化才會(huì)顯現(xiàn)),所以需要生成一個(gè)寄存器來保存C的值.連續(xù)賦值語(yǔ)句的綜合:從賦值語(yǔ)句右邊提取出邏輯,用于驅(qū)動(dòng)賦值語(yǔ)句左邊的net

      過程賦值語(yǔ)句的綜合:從賦值語(yǔ)句右邊提取出的邏輯,用于驅(qū)動(dòng)賦值語(yǔ)句左邊的reg型變量。注意:initia語(yǔ)句僅用于仿真,不綜合。只有在always中才能被綜合。

      建議組合邏輯用阻塞語(yǔ)句,時(shí)序邏輯用非阻塞語(yǔ)句,任何延時(shí)控制(如#5)都被綜合工具器忽略。一個(gè)模塊中同一個(gè)變量不能既有阻塞賦值,又有非阻塞賦值。

      always語(yǔ)句的綜合1對(duì)于組合邏輯,事件列表必須包括所有always語(yǔ)句中引用的變量,否則會(huì)造成綜合的結(jié)果與設(shè)計(jì)功能不匹配。

      2臨時(shí)變量可以不用在事件列表中列出。

      if語(yǔ)句的綜合特別要注意綜合出鎖存器。always中,某個(gè)變量沒有在所有的條件分支中被賦值,就會(huì)綜合出鎖存器。

      case語(yǔ)句綜合和if語(yǔ)句一樣,不完整的case分支語(yǔ)句也會(huì)導(dǎo)致鎖存器的綜合。

      避免方法:

      1)在case語(yǔ)句前,對(duì)要賦值的變量賦予初值

      always @(state or a or b)begin

      q =0;

      case(state)

      3'b000: q =A & B;

      ……

      2)使用default分支語(yǔ)句

      3)使用綜合指令,具體用法在case關(guān)鍵字行的注釋中插入”synthesis full_case“ 并行CASE語(yǔ)句

      通常情況下case語(yǔ)句和if語(yǔ)句一樣會(huì)綜合出代有優(yōu)先權(quán)解碼的硬件電路,從上大俠選項(xiàng)優(yōu)先級(jí)逐漸降低。但如果設(shè)計(jì)者知道case語(yǔ)句中的所有項(xiàng)是互斥的,這時(shí)候就使用”parallel_case"綜合指令。

      always @(key)

      case(key)//synthesis parallel_case

      4'b0001: a= 0;

      endcase

      下載學(xué)習(xí)FPGA verilog的心得--編程技巧--如何寫代碼減少邏輯單元的使用數(shù)量word格式文檔
      下載學(xué)習(xí)FPGA verilog的心得--編程技巧--如何寫代碼減少邏輯單元的使用數(shù)量.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦