執行中斷或達到最大運行時間。在edaplayground中執行中斷或達到最大運行時間
這裏是鏈接,我的代碼:我想在這個設計中交換數字 http://www.edaplayground.com/x/CX8
。
執行中斷或達到最大運行時間。在edaplayground中執行中斷或達到最大運行時間
這裏是鏈接,我的代碼:我想在這個設計中交換數字 http://www.edaplayground.com/x/CX8
。
當然這不是EDAPlayground的問題。代碼可能在某處出錯。
您的always @(*)
塊是您的模擬停留在單個時間戳的主要原因。 *
表示如果任何 RHS變量更改其值,則執行整個塊。這裏,變量a_reg和b_reg在單個時隙上連續交換。相反,使用always @(posedge clk)
。
要獲得更清晰的想法,請參閱this鏈接。
我相信你要做的是交換兩個4位數字'a'和'b'。要在verilog中做到這一點,你需要記住,當你使用always @(posedge clk)
構造時,你實際上將RHS上的網絡舊值分配給LHS上的寄存器。 因此
always @(posedge clk) begin a_out = b; b_out = a; end
導致正確的操作,而不需要任何額外的寄存器。我創建了一個edaplayground項目的副本並添加了一些額外的測試向量。 http://www.edaplayground.com/x/8hk
@RajeshReddy如果您將答案標記爲正確的解決方案,它對您有幫助 – Prashant
看看[如何問](http://www.stackoverflow.com/help/how-to-ask)。 –