《advanced fpga designed》
2020/04/03 從事fpga開發經典圖書。今天開始閱讀英文原版。因為買到的漢語版本講的很差。
上圖很清晰的說明了軟件的處理流程,解釋了為什么只要改動rt必須從頭編譯。
第一章:介紹achitecting speed
三大影響因素:吞吐量,延時,時序(在邏輯內部主要有器件本生決定)
時序的優化主要是降低了組合邏輯在關鍵路徑中的延遲。
1.1高吞吐率設計:主要是穩定狀態下的數據速率。單位bit/clock
引出了pipeline的概念(流水線);優點:新的數據可以再上一個數據沒有完成之前被處理;通過計算x三次方的例子來說明迭代實現和流水線實現的差別。迭代實現典型例子(for循環),pipeline實現過程中不能有閉環操作。
缺點:流水線實現的方式增加了資源的占用。
1.2 低延遲:盡可能在輸入和輸出之間縮短時間
通常需要并行處理,刪除流水線和邏輯捷徑,會導致吞吐率和最大時鐘速率降低。(在例子中計算x3,利用阻塞賦值實現低延遲)。
缺點:降低了系統的時鐘周期,并且增加了寄存器中組合邏輯的延遲。
?
module?power3(
????output?[7:0]?xpower,
????output???????finished,
????input??[7:0]?x,
????input????????clk,
????input????????start
);
reg?????[7:0]???cnount;
?
assign?finished?=?(ncount?==?0);
always?@(posedge?clk)
????if(start?)?begin
????????xpower?<=?x;
????????ncount?<=?2;
????????end
????else?if?(!finished)?begin
????????ncount?<=?ncount?-1;
????????xpower?<=?xpower?*x;
????end
endmodule
?
//pipeline?xpower
module?power3(
????output?reg?[7:0]?xpower,
????input??[7:0]?x,
????input????????clk
?
);
reg?[7:0]xpower1,xpower2;
reg?[7:0]?x1,x2;
always?@(posedge?clk)
begin??//sequence
????//pipeline
????x1???????????<=?x;
????xpower1??????<=?x;
????//popeline
????x2???????????<=?x1;
????xpower2??????<=?xpower1*x1;
????//pipeline
????xpower???????<=?xpower2*x2;
?
end
endmodule
總結
以上是生活随笔為你收集整理的《advanced fpga designed》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 德仪TPA6100 DIY娱乐级耳机放大
- 下一篇: 刀库计算机错误,三菱M70刀库定位错误报