2015-10-17 33 views

回答

1

當然這不是EDAPlayground的問題。代碼可能在某處出錯。

您的always @(*)塊是您的模擬停留在單個時間戳的主要原因。 *表示如果任何 RHS變量更改其值,則執行整個塊。這裏,變量a_reg和b_reg在單個時隙上連續交換。相反,使用always @(posedge clk)

要獲得更清晰的想法,請參閱this鏈接。

1

我相信你要做的是交換兩個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

+0

@RajeshReddy如果您將答案標記爲正確的解決方案,它對您有幫助 – Prashant