我具有低於輸出不更新,直到下一個時鐘週期
always @(posedge Clk) begin
ForwardA = 0;
ForwardB = 0;
//EX Hazard
if (EXMEMRegWrite == 1) begin
if (EXMEMrd != 0)
if (EXMEMrd == IDEXrs)
ForwardA = 2'b10;
if (EXMEMrd == IDEXrt && IDEXTest == 0)
ForwardB = 2'b10;
end
//MEM Hazard
if (MEMWBRegWrite == 1) begin
if (MEMWBrd != 0) begin
if (!(EXMEMRegWrite == 1 && EXMEMrd != 0 && (EXMEMrd == IDEXrs)))
if (MEMWBrd == IDEXrs)
ForwardA = 2'b01;
if (IDEXTest == 0) begin
if (!(EXMEMRegWrite == 1 && EXMEMrd != 0 && (EXMEMrd == IDEXrt)))
if (MEMWBrd == IDEXrt)
ForwardB = 2'b01;
end
end
end
end
代碼模塊的問題是輸出,該輸出是ForwardA和ForwardB沒有不更新在上升時鐘沿,而不是下一個上升時鐘邊緣...這是爲什麼?我該如何解決,以便輸出在相同的正上升時鐘邊沿上更新?
這裏就是我的意思是: alt text http://img693.imageshack.us/img693/8660/timing.jpg
ForwardA與2在下一個時鐘上升沿,而不是在同一個時鐘上升沿
對不起很挑剔,但是你的意思是「不是在不是上升的時鐘沿而是在下一個上升的時鐘沿上更新」?你想刪除其中一個不是? (我應該是更重要的事情,但它是我的決賽周,我真的不應該現在在StackOverflow,lol) – 2010-05-05 01:48:48
如果你看圖片,並看看ForwardA信號... 2更新在下一個上升時鐘邊緣...我希望它在黃色線的上升時鐘邊緣更新,因爲在黃色線EXMEMrd == IDEXrs ...我希望這是有道理的 – aherlambang 2010-05-05 03:09:18