1. 在不是不得以的情況的話,不是用異步設計。而應該使用同步設計。
2. 分割模塊
把一個設計分割為幾個易于管理的塊,有利于團隊工作。如果只有一個主要功能模塊則分為幾個子模塊。遵循SPEC分割。
3. 復位
要對DFF和LATCH進行復位。設計時采用異步復位。復位信號要直接連入FF。
4. 對于FF的輸出要用非阻塞語句。每個FF只能在一個always塊中賦值。FF最好規(guī)定單沿觸發(fā)。
5. 有些地方也不一定要用非阻塞語句。比如要從一個時鐘產(chǎn)生另一個時鐘時:
always @(posedge clka)
clkb = ~clka;
6. 有些時候也不是必須要統(tǒng)一一個沿觸發(fā),如DDR。
7. 組合邏輯
簡單的組合邏輯用連續(xù)賦值實現(xiàn)。復雜的用always。描述組合邏輯時,一個需要注意的是latch的引入,要把if和case 的條件寫全。
8. 組合的case
在case前賦值,來使case條件完備,不會出現(xiàn)額外的latch
9. 選擇器
來源:零八我的愛0次