淺談兩種實際電路中延時(二)
2022-9-8 22:09:29??????點擊:
圖14顯示了在圖13中所示的adder_t4代碼上運行模擬的輸出波形。第一個a輸入變化發生在時間15,這導致輸出事件被安排在時間27,但是b輸入上的變化并且在時間17,19和21分別對輸入進
module adder_t10a (co, sum, a, b, ci);
output co;
output [3:0] sum;
input [3:0] a, b;
input ci;
wire [4:0] tmp;
assign tmp = a + b + ci;
assign #12 {co, sum} = tmp;
endmodule
module adder_t10b (co, sum, a, b, ci);
output co;
output [3:0] sum;
input [3:0] a, b;
input ci;
wire [4:0] tmp;
assign #12 tmp = a + b + ci;
assign {co, sum} = tmp;
endmodule
可以類似地表明,通過向連續分配添加延遲來建模邏輯功能,其輸出用于驅動具有延遲的其他連續分配的輸入,也精確地模擬具有慣性延遲的組合邏輯。
6.3混合無延遲always塊和連續分配
module adder_t5 (co, sum, a, b, ci);
output co;
output [3:0] sum;
input [3:0] a, b;
input ci;
reg [4:0] tmp;
always @(a or b or ci) begin
tmp = a + b + ci;
end
assign #12 {co, sum} = tmp;
endmodule
在沒有延遲的始終塊中建模邏輯功能,然后將始終塊中間值傳遞給具有延遲的連續分配,如adder_t5所示,將精確地模擬具有慣性延遲的組合邏輯。
在上例中,tmp變量在任何輸入事件之后更新。
連續分配輸出在tmp變量最后一次更改后12ns內不會改變。始終塊輸入信號的任何變化都將導致tmp更改,這將導致在連續分配輸出上調度新的輸出事件。直到連續賦值輸出才會更新。
這種編碼風格模擬了具有慣性延遲的組合邏輯。
建模指南:使用具有延遲的連續賦值來建模簡單的組合邏輯。這種編碼風格將準確地模擬具有慣性延遲的組合邏輯。
Testbench指南:可以在測試平臺的任何位置使用連續賦值來將激勵值驅動到輸入端口和實例化模型的雙向端口。
結論
1 ) 模擬慣性延遲的方法:連續賦值+正規延遲
2 ) 模擬傳輸延遲的方法:.非阻塞賦值+內定延遲
3)阻塞賦值不建議添加延遲。
行了兩次更改,導致安排三個新的輸出事件。只有最后一個輸出事件實際完成,輸出在時間33分配。連續分配不會“排隊”輸出分配,它們只跟蹤下一個輸出值以及何時發生;因此,連續分配模型具有慣性延遲的組合邏輯。
module adder_t10a (co, sum, a, b, ci);
output co;
output [3:0] sum;
input [3:0] a, b;
input ci;
wire [4:0] tmp;
assign tmp = a + b + ci;
assign #12 {co, sum} = tmp;
endmodule
module adder_t10b (co, sum, a, b, ci);
output co;
output [3:0] sum;
input [3:0] a, b;
input ci;
wire [4:0] tmp;
assign #12 tmp = a + b + ci;
assign {co, sum} = tmp;
endmodule
可以類似地表明,通過向連續分配添加延遲來建模邏輯功能,其輸出用于驅動具有延遲的其他連續分配的輸入,也精確地模擬具有慣性延遲的組合邏輯。
6.3混合無延遲always塊和連續分配
module adder_t5 (co, sum, a, b, ci);
output co;
output [3:0] sum;
input [3:0] a, b;
input ci;
reg [4:0] tmp;
always @(a or b or ci) begin
tmp = a + b + ci;
end
assign #12 {co, sum} = tmp;
endmodule
在沒有延遲的始終塊中建模邏輯功能,然后將始終塊中間值傳遞給具有延遲的連續分配,如adder_t5所示,將精確地模擬具有慣性延遲的組合邏輯。
在上例中,tmp變量在任何輸入事件之后更新。
連續分配輸出在tmp變量最后一次更改后12ns內不會改變。始終塊輸入信號的任何變化都將導致tmp更改,這將導致在連續分配輸出上調度新的輸出事件。直到連續賦值輸出才會更新。
這種編碼風格模擬了具有慣性延遲的組合邏輯。
建模指南:使用具有延遲的連續賦值來建模簡單的組合邏輯。這種編碼風格將準確地模擬具有慣性延遲的組合邏輯。
Testbench指南:可以在測試平臺的任何位置使用連續賦值來將激勵值驅動到輸入端口和實例化模型的雙向端口。
結論
1 ) 模擬慣性延遲的方法:連續賦值+正規延遲
2 ) 模擬傳輸延遲的方法:.非阻塞賦值+內定延遲
3)阻塞賦值不建議添加延遲。
- 上一篇:直流電機驅動電路 2022/9/8
- 下一篇:淺談兩種實際電路中延時(一) 2022/9/8