欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

unpacked數(shù)組和packed數(shù)組的主要區(qū)別

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 作者:芯片驗證工程師 ? 2022-10-18 09:13 ? 次閱讀

unpacked數(shù)組和packed數(shù)組的主要區(qū)別是unpacked數(shù)組在物理存儲時不能保證連續(xù),而packed數(shù)組則能保證在物理上連續(xù)存儲。

另一種看待unpacked數(shù)組和packed數(shù)組差異點的角度是,packed數(shù)組可以看成一個整體,一個單一向量。

unpacked數(shù)組的維度是在數(shù)組名稱之后聲明的,數(shù)組中內(nèi)容可以是任何數(shù)據(jù)類型或者其他數(shù)組。

bit uP [3:0]; //1-D unpacked
 //unpacked dimensions declared after the data identifed name.

c789901e-4e36-11ed-a3b6-dac502259ad0.png

正如你所注意到的,uP0到uP3分散在多個word中,它們不是連續(xù)的。

packed數(shù)組的維度是在數(shù)組名稱之前聲明的,下面是一個packed數(shù)組的例子:

bit [3:0] p; //1-D packed
 //packed dimensions declared before the data identifer name

這個打包數(shù)組可以表示為如下所示:

c79bbe10-4e36-11ed-a3b6-dac502259ad0.png

正如上圖所示的,p3到p0在物理空間上是連續(xù)的。

某種意義上,這個所謂的packed就是表示是否在物理空間連續(xù)存放。

2-D Packed Array

module tb;
// 2-D packed array

// 4 entries(rows) of 8 bits(columns) each
// Total packed dimension (contiguous bits) = 4*8 = 32 bits
bit [3:0][7:0] m_data;
initial begin
m_data = 32'h0102_0304;//Assign to 32 contiguous bits
//display 2-d packed array as a contiguous set of bits
$display ("m_data = 0x%h", m_data);
//display 1 byte each stored at m_data[0]...m_data[3]
for (int i = 0; i < 4; i++) begin
$display ("m_data[%0d] = 0x%h", i, m_data[i]);
end
end
endmodule

仿真log:

m_data = 0x01020304
m_data[0] = 0x04
m_data[1] = 0x03
m_data[2] = 0x02
m_data[3] = 0x01
 V C S S i m u l a t i o n R e p o r t

在上面的例子中,我們聲明了一個名為“m_data”的二維packed數(shù)組。請注意,所有維度的聲明都位于數(shù)組名稱的左側(cè)。

這個數(shù)組一共有4(行),每行8bit(列),總的大小是4*8 = 32bit。因為是packed數(shù)組,其中所有的bit都是連續(xù)存儲的,所以可以按照bit單獨索引到。

我們給這個數(shù)組賦值(32'h 0102_0304),然后打印相應(yīng)的4行數(shù)據(jù)。

0x04、0x03、0x02、0x01

3-D Packed Array

3維數(shù)組和2維數(shù)組類似。

module tb;
bit [2:0][1:0][7:0] m_data; // 3-D packed array

initial begin
// Assign 16-bits ([1:0][7:0]) at each of the three
//([2:0])locations
m_data[0] = 16'h0102;
m_data[1] = 16'h0304;
m_data[2] = 16'h0506;
// m_data as a single packed value
$display ("m_data = 0x%h", m_data);
//Assign the entire array with a single value
m_data = 48'hcafe_face_0708;
// m_data as a single packed value
$display("m_data = 0x%h", m_data);
foreach (m_data[i]) begin
$display ("m_data[%0d] = 0x%h", i, m_data[i]);
foreach (m_data[, j]) begin
$display ("m_data[%0d][%0d] = 0x%h", i, j, m_
data[i][j]);
end
end
end
endmodule

仿真log:

m_data = 0x050603040102
m_data = 0xcafeface0708
m_data[2] = 0xcafe
m_data[2][1] = 0xca
m_data[2][0] = 0xfe
m_data[1] = 0xface
m_data[1][1] = 0xfa
m_data[1][0] = 0xce
m_data[0] = 0x0708
m_data[0][1] = 0x07
m_data[0][0] = 0x08
 V C S S i m u l a t i o n R e p o r t

在上面的例子中,我們聲明了一個三維packed數(shù)組,命名為“m_data”,一共是328 = 48bit。由于這是一個packed數(shù)組,48bit在物理空間上是連續(xù)分配的。
我們可以理解為:

1*48
或者 3*16
或者 6*8
或者48*1

1-D Packed and1-D Unpacked Array

下面是一個一維packed數(shù)組和1維unpacked數(shù)組的示例:

module PU;
logic [31:0] v1 [7:0]; //1-D packed & 1-D unpacked 
(memory)
initial begin
//Array Index 7 of unpacked
v1[7] = 'h FF_FF_FF_FF; //equivalent to v1[7][31:0]
$display(v1);
//Array Index 6 of unpacked; 31:0 of packed
v1[6][31:0] = 'h 11_11_11_11;
$display(v1);
//Array Index 5 of unpacked; 15:0 of packed
v1[5][15:0] = 'h aa_aa;
$display(v1);
//Array Index 4 of unpacked; 0th bit of packed
v1[4][0] = 1;
$display(v1);
end
endmodule

仿真log:

'{‘h ffffffff, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h 
xxxxxxxx, ‘h xxxxxxxx}
'{‘h ffffffff, ‘h 11111111, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h 
xxxxxxxx, ‘h xxxxxxxx}
'{‘h ffffffff, ‘h 11111111, ‘h xxxxaaaa, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h 
xxxxxxxx, ‘h xxxxxxxx}
'{‘h ffffffff, ‘h 11111111, ‘h xxxxaaaa, ‘h xxxxxxx1, ‘h xxxxxxxx, ‘h xxxxxxxx, ‘h 
xxxxxxxx, ‘h xxxxxxxx}
V C S S i m u l a t i o n R e p o r t

在上面的例子中,我們聲明了一個1維unpacked數(shù)組("v1",共包含8項),數(shù)組中的每一個內(nèi)容又是一個packed數(shù)組(bit [31:0])“v1”。我們可以理解為一個深度為8,寬度為32的存儲器。

4-D Unpacked Array

我們聲明一個4維unpacked數(shù)組,所有維度相關(guān)的聲明都在數(shù)組名稱的右邊

logic uP [3:0][2:0][1:0][7:0];

如果一個unpacked數(shù)據(jù)項使用1word存儲,上面的數(shù)組就需要物理空間

4*3*2*8*1 word

1-D Packed and3-D Unpacked Array

logic [7:0] uP [3:0][2:0][1:0];

上面這個示例,是一個4*3*2個unpacked數(shù)組,其中每一個數(shù)據(jù)項都是一個8bit的packed數(shù)組。

如果每一個unpacked數(shù)據(jù)項使用1word存儲,那么數(shù)組uP總的存儲空間就是

4*3*2*1word

2-D Packed and2D-Unpacked Array

logic [1:0] [7:0] uP[3:0] [2:0];

上面聲明了一個2維unpacked 數(shù)組,每個數(shù)組項都是一個2維的packed數(shù)組。所以,如果每個unpacked數(shù)據(jù)項使用1word存儲,那么總的存儲空間是:

4*3*1word

3-D Packed and1-D Unpacked Array

logic [2:0][1:0][7:0] uP [3:0];

上面聲明了一個1維unpacked數(shù)組uP,一共4項,每項是一個3維packed數(shù)組。如果每個unpacked數(shù)據(jù)項使用1word存儲,那么總的存儲空間是

4*1word * 2

因為1word裝不下一個packed數(shù)組

原文標(biāo)題:SystemVerilog中的Packed和Unpacked數(shù)組

文章出處:【微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4359

    瀏覽量

    86202
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1352

    瀏覽量

    110434
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    417

    瀏覽量

    26033

原文標(biāo)題:SystemVerilog中的Packed和Unpacked數(shù)組

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    C語言中指針數(shù)組數(shù)組指針的區(qū)別

    指針和數(shù)組之間存在著緊密的關(guān)系。在本文中,我們將探討指針和數(shù)組的關(guān)系、指針?biāo)阈g(shù)和數(shù)組遍歷、多維數(shù)組與指針以及指針數(shù)組
    發(fā)表于 08-17 15:29 ?440次閱讀

    VB數(shù)組的使用

    實驗六  數(shù)組的使用 一、實驗?zāi)康?nbsp;   (1)掌握數(shù)組的聲明和數(shù)組元素的引用。    (2)掌握固定數(shù)組和動
    發(fā)表于 09-23 19:28 ?6012次閱讀

    詳談數(shù)組和指針的區(qū)別與聯(lián)系

    詳談數(shù)組和指針的區(qū)別與聯(lián)系
    的頭像 發(fā)表于 06-29 15:18 ?2.3w次閱讀
    詳談<b class='flag-5'>數(shù)組</b>和指針的<b class='flag-5'>區(qū)別</b>與聯(lián)系

    指針數(shù)組數(shù)組指針的區(qū)別

    這里我們區(qū)分兩個重要的概念:指針數(shù)組、數(shù)組指針。
    的頭像 發(fā)表于 06-29 15:30 ?2w次閱讀
    指針<b class='flag-5'>數(shù)組</b>和<b class='flag-5'>數(shù)組</b>指針的<b class='flag-5'>區(qū)別</b>

    C語言指針和數(shù)組區(qū)別

    在C語言教程中我們使用通過數(shù)組名通過偏移和指針偏移都可以遍歷數(shù)組,那么指針和數(shù)組到底有什么區(qū)別??
    的頭像 發(fā)表于 07-18 16:29 ?1992次閱讀

    二維數(shù)組數(shù)組指針以及指針數(shù)組

    二維數(shù)組數(shù)組指針以及指針數(shù)組
    的頭像 發(fā)表于 08-16 09:02 ?2759次閱讀

    柔性數(shù)組與指針的區(qū)別

    柔性數(shù)組在實際中應(yīng)用還是挺多的,看過上一篇文章分享一種靈活性很高的協(xié)議格式(附代碼例子)的小伙伴不知有沒有注意到我們有使用了柔性數(shù)組
    的頭像 發(fā)表于 09-02 15:32 ?1178次閱讀

    變長數(shù)組和動態(tài)數(shù)組區(qū)別

    動態(tài)數(shù)組是指在聲明時,沒有確定數(shù)組大小的數(shù)組,它可以隨程序需要而重新指定大小。動態(tài)數(shù)組的內(nèi)存空間是從堆動態(tài)分配的,當(dāng)程序執(zhí)行到我們編寫的分配語句時,才為其分配存儲空間。
    的頭像 發(fā)表于 09-28 15:20 ?1998次閱讀

    數(shù)組的定義 什么是數(shù)組

    數(shù)組 數(shù)組是內(nèi)置類型,是一組同類型數(shù)據(jù)的集合,它是值類型,通過從0開始的下標(biāo)索引訪問元素值。 在初始化后長度是固定的,無法修改其長度。當(dāng)作為方法的參數(shù)傳入時將復(fù)制一份數(shù)組而不是引用同一指針。
    的頭像 發(fā)表于 10-09 09:39 ?1997次閱讀

    python列表和數(shù)組區(qū)別

    內(nèi)部實現(xiàn)、性能、操作方式等多個方面進行詳細(xì)分析,以幫助讀者更好地理解它們之間的區(qū)別和適用場景。 一、內(nèi)部實現(xiàn): 列表(List): Python中的列表是一種有序的、可變的、可包含不同類型元素的數(shù)據(jù)結(jié)構(gòu)。列表的實現(xiàn)基于動態(tài)數(shù)組,可以動態(tài)分配
    的頭像 發(fā)表于 11-21 15:13 ?2505次閱讀

    字符數(shù)組和字符串有沒有區(qū)別

    字符數(shù)組和字符串有沒有區(qū)別?
    的頭像 發(fā)表于 11-30 16:39 ?757次閱讀

    數(shù)組和指針不相同嗎?數(shù)組和指針有哪些區(qū)別

    數(shù)組就是指針,指針就是數(shù)組,這樣的言論在評論區(qū)看到不下于10次。
    的頭像 發(fā)表于 12-13 16:34 ?1692次閱讀
    <b class='flag-5'>數(shù)組</b>和指針不相同嗎?<b class='flag-5'>數(shù)組</b>和指針有哪些<b class='flag-5'>區(qū)別</b>

    數(shù)組和鏈表有何區(qū)別

    數(shù)組和鏈表的區(qū)別,這個問題,不僅面試中經(jīng)常遇到,考研的同學(xué)也得掌握才行。
    的頭像 發(fā)表于 02-19 15:33 ?579次閱讀
    <b class='flag-5'>數(shù)組</b>和鏈表有何<b class='flag-5'>區(qū)別</b>

    數(shù)組和鏈表在內(nèi)存中的區(qū)別 數(shù)組和鏈表的優(yōu)缺點

    數(shù)組和鏈表在內(nèi)存中的區(qū)別 數(shù)組和鏈表的優(yōu)缺點? 數(shù)組和鏈表是常見的數(shù)據(jù)結(jié)構(gòu),用于組織和存儲數(shù)據(jù)。它們在內(nèi)存中的存儲方式以及優(yōu)缺點方面存在一些顯著的差異。本文將詳細(xì)探討這些差異以及它們的
    的頭像 發(fā)表于 02-21 11:30 ?1153次閱讀

    指針數(shù)組和二維數(shù)組有沒有區(qū)別

    指針數(shù)組和二維數(shù)組有沒有區(qū)別?比如這樣的兩個代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][6
    的頭像 發(fā)表于 11-24 11:12 ?223次閱讀