system verilog 數據結構(轉)

轉自systemverilog學習(4)動態(tài)數組

本節(jié)主要內容:動態(tài)數組咖气,隊列衍慎,聯(lián)合數組欢顷,數組基本操作纱兑,結構體類型因俐,枚舉類型

一:動態(tài)數組

1:基礎
在run-time才知道元素個數榴嗅,在compile-time不知道,可以在仿真的時候再確定元素個數

2:表示

  data_type name_of_dynamic_array[];

  name_of_ dynamic_array = new[number of elements];

  實例:int dyn[]; dyn = new[5];dyn.delete();

3:可將固定數組賦值給動態(tài)數組妄呕,要求是元素個數相同

二:隊列(先進先出)

1:基礎知識
  可插入,刪除嗽测,sort绪励,search肿孵,push,pop疏魏,add停做,remove;可將固定數組或者動態(tài)數組賦給隊列

2:表示

  data_type queue_name[$] = {..} //隊列賦值時大括號前面不加單引號
  實例:int b[$] = {3,4}大莫; //{3,4}
     b.insert(1,1);   //{3,1,4} 在第一個元素后面添加1
     b.delete(1);  //{3蛉腌,4} 刪除元素1
     b.push_front(6) ; //{6,3,4}
     j = b.pop.back;  //{6,3}, j = 4

三:聯(lián)合數組
1:基礎知識
  充分利用內存里的離散空間,不連續(xù)空間只厘;
  索引值可以為整型眉抬,字符型,一維數組

2:表示

  data_type associative_array_name[*/string]

3:示例

image

在內存中的存儲

image

說明:標準數組存儲時懈凹,所有的存儲器都用到了蜀变;聯(lián)合數組使用內存時,稀疏介评。

4:操作
  遍歷(foreach)库北,first,next们陆,prev寒瓦,delete,exits

四:數組的操作

1:算術運算
  sum坪仇,product杂腰,and,or and xor
  例如下面是sum舉例:

  
image

說明:on.sum返回on的位數椅文,即一位喂很,即值1(5個1相加取一位);將on.sum賦給位寬為8bit的summ皆刺,則返回值5少辣。

2:sort,rsort(反過來排序)羡蛾,reverse漓帅,shuffle(打亂排序),find_first痴怨,find_first_with_index忙干,unique(得到元素不重復的數組)

image
    //find_index with (item > 3); //元素大于3的索引值

3:sum的擴展用法

image

//d.sum(x) with ((x>7)x); //99+8*8

五:總結
Fixed Arrays: 在compile time時知道size浪藻;連續(xù)內存存放捐迫,支持多維
Dynamic Arrays:run time時得到size;連續(xù)內存珠移;
Queues Arrays:FIFO/Stack
Associative Arrays:離散數據內存弓乙,索引可以為數字或者字符串;用于hash

六:結構體
  將變量放在一起钧惧,比如總線協(xié)議放在結構體里暇韧;默認是unpacked存放
1:示例

image

使用:Instruction_Word.address = 24'hF00000;

2:packed存放(加入packed關鍵字)

image

第一個數據放在內存的左側。

七:枚舉類型
1:表示
  enum {red,green.blue} RGB //red = 0浓瞪,green = 1懈玻,blue = 2

2:枚舉值類型
  顯式指定枚舉值 enum{one = 1, five = 5, ten = 10} state;
  
部分顯式指定值

image

3:枚舉指定類型

  enum bit {false,true} Boolean乾颁;
  enum logic [1:0] {WAITE,LOAD,READY} state;
  enum logic [1:0] {
    WAITE=3'b001,
    LOAD=3'b010,
    READY=3'b100} state;  //error涂乌;因為枚舉類型是兩位,賦值超過兩位
  emum logic {on = 1'b1,OFF=1'bz} out;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末英岭,一起剝皮案震驚了整個濱河市湾盒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诅妹,老刑警劉巖罚勾,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吭狡,居然都是意外死亡尖殃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門划煮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來送丰,“玉大人,你說我怎么就攤上這事弛秋∑黪铮” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵蟹略,是天一觀的道長邀桑。 經常有香客問我,道長科乎,這世上最難降的妖魔是什么壁畸? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮茅茂,結果婚禮上捏萍,老公的妹妹穿的比我還像新娘。我一直安慰自己空闲,他們只是感情好令杈,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碴倾,像睡著了一般逗噩。 火紅的嫁衣襯著肌膚如雪掉丽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天异雁,我揣著相機與錄音捶障,去河邊找鬼。 笑死纲刀,一個胖子當著我的面吹牛项炼,可吹牛的內容都是我干的。 我是一名探鬼主播示绊,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼锭部,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了面褐?” 一聲冷哼從身側響起拌禾,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎展哭,沒想到半個月后蹋砚,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡摄杂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年坝咐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片析恢。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡墨坚,死狀恐怖,靈堂內的尸體忽然破棺而出映挂,到底是詐尸還是另有隱情泽篮,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布柑船,位于F島的核電站帽撑,受9級特大地震影響,放射性物質發(fā)生泄漏鞍时。R本人自食惡果不足惜亏拉,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逆巍。 院中可真熱鬧及塘,春花似錦、人聲如沸锐极。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灵再。三九已至肋层,卻和暖如春亿笤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背栋猖。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工净薛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掂铐。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓罕拂,卻偏偏與公主長得像揍异,于是被迫代替她去往敵國和親全陨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容