筆者詳細的談論許多在整合里會出現的微妙思路,如:如何把計數器/定時器整合在某個步驟里,從何提升模塊解讀性和擴展性。此外,在整合篇還有一個重要的討論,那就是 for,while 和 do ... while 等循環。這些都是一些順序語言的佼佼者,可是在 Verilog HDL 語言里它們就黯然失色。整合篇所討論的內容不單是循環而已,整合篇的第二個重點是理想時序和物理時序的整合。說實話,筆者自身也認為要結合“兩個時序”是一件苦差事,理想時序是 Verilog的行為,物理時序則是硬件的行為。不過在它們兩者之間又有微妙的 “黏糊點”,只要稍微利用一下這個“黏糊點”我們就可以非常輕松的寫出符合“兩個時序”的模塊,但是前提條件是充足了解“理想時序”。整合篇里還有一個重點,那就是“精密控時”。實現“精密控時”最笨的方法是被動式的設計方法,亦即一邊仿真,一邊估算時鐘的控制精度。這顯然是非常“傳統”而且“古老”的方法,雖然有效但往往就是最費精神和時間的。相反的,主動式是一種講求在代碼上和想象上實現“精密控時”的設計方法。主動式的設計方法是基于“理想時序”“建模技巧”和“仿順序操作”作為后盾的整合技巧。不說筆者吹牛,如果采用主動式的設計方法驅動 IIC 和 SDRAM 硬件,任何一段代碼都是如此合情合理。
標簽:
verilogl
上傳時間:
2022-06-13
上傳用戶: