2
A
回答
2
Verilog沒有任何像SV這樣的內置數組方法。因此,可以使用for-loop來執行所需的功能。例如:
parameter N = 64;
integer i;
reg [7:0] array [0:N-1]
reg [N+6:0] sum; // enough bits to handle overflow
always @*
begin
sum = {(N+7){1'b0}}; // all zero
for(i = 0; i < N; i=i+1)
sum = sum + array[i];
end
0
我對這個問題的解決方案組合:
//example array
parameter cells = 8;
reg [7:0]array[cells-1:0] = {1,2,3,4,5,1,1,1};
//###############################################
genvar i;
wire [7:0] summation_steps [cells-2 : 0];//container for all sumation steps
generate
assign summation_steps[0] = array[0] + array[1];//for less cost starts witch first sum (not array[0])
for(i=0; i<cells-2; i=i+1) begin
assign summation_steps[i+1] = summation_steps[i] + array[i+2];
end
endgenerate
wire [7:0] result;
assign result = summation_steps[cells-2];
0
在批評送到這裏其他的答案,也有一些意見作出。
第一個重要的事情是提供積累的空間。語句,如以下,RTL,不會那樣做:
sum = sum + array[i]
因爲每個表達式的右手邊(RHS)創造了獨特的網都被分配回同一稱爲「總和」的信號,導致在哪個獨特的網絡實際上是駕駛員(被稱爲多駕駛員危險)中含糊不清。爲了解決這個問題,這個陳述也產生了一個組合式的循環問題,因爲總和被聯合使用來驅動自己 - 這不太好。什麼是好的是,如果不同的東西可以用作負載,並作爲循環的每個連續迭代司機....
回到說法雖然,在上述情況下,信號將被驅動到大多數模擬器工具的未知值(因爲:它應該選擇哪個驅動程序?所以假設它們都不是正確的,或者它們全都是正確的 - 未知的!)。這就是說,如果它能夠完全通過編譯器(這不太可能,而且至少在Cadence IEV中)。
正確的做法是設置以下內容。假設你是總結字節:
parameter NUM_BYTES = 4;
reg [7:0] array_of_bytes [NUM_BYTES-1:0];
reg [8+$clog2(NUM_BYTES):0] sum [NUM_BYTES-1:1];
always @* begin
for (int i=1; i<NUM_BYTES; i+=1) begin
if (i == 1) begin
sum[i] = array_of_bytes[i] + array_of_bytes[i-1];
end
else begin
sum[i] = sum[i-1] + array_of_bytes[i];
end
end
end
// The accumulated value is indexed at sum[NUM_BYTES-1]
相關問題
- 1. 數組的總和元素
- 2. 數組元素的總和
- 3. 總和數組元素
- 4. 總和多維數組元素的
- 5. 返回數組元素的總和perl
- 6. 數組元素的總和VHDL
- 7. CUDA發現數組元素的總和
- 8. 數組元素的總和java
- 9. 查找數組,等於剩餘的元素的總和元素
- 10. 刪除數組元素和總剩餘的元素
- 11. MASM將數組中元素的總和加起來
- 12. 總和數組鍵的多維數組中的元素
- 13. perl的數組元素減法
- 14. 減去數組中元素的差異
- 15. 將數組減少爲第一個元素和最後一個元素的元組?
- 16. 二維數組中的元素總數
- 17. jQuery數組中的元素總數
- 18. 添加數組的元素(行和列的總和)
- 19. 減去N個元素數組matlab
- 20. MongoDB的總纂$過濾數組元素
- 21. Vb.net總結相同的數組元素
- 22. 元素總數
- 23. XSL 1.0組成元素總和1.0
- 24. PHP:數組>總和所有的數字元素?
- 25. Python - 如何添加和減去數組中的元素
- 26. 比較數組中的元素,找到元素的最大總和
- 27. 的addEventListener到元素和元素的目標數組的數組
- 28. 將R中所有向量元素的相減的總和表示爲
- 29. Java如何找到兩個不同數組中元素總和的總和?
- 30. JavaScript複雜數組「減少元素」 - 基於數組元素構建HTML表格
你可以給一個有問題的向量的例子。 – Morgan