日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sv队列和动态数组的区别_systemverilog学习(4)动态数组

發(fā)布時(shí)間:2025/3/19 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sv队列和动态数组的区别_systemverilog学习(4)动态数组 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本節(jié)主要內(nèi)容:動(dòng)態(tài)數(shù)組,隊(duì)列,聯(lián)合數(shù)組,數(shù)組基本操作,結(jié)構(gòu)體類型,枚舉類型

一:動(dòng)態(tài)數(shù)組

1:基礎(chǔ)

在run-time才知道元素個(gè)數(shù),在compile-time不知道

可以在仿真的時(shí)候再確定元素個(gè)數(shù)

2:表示

data_type name_of_dynamic_array[];

name_of_ dynamic_array = new[number of elements];

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

3:可將固定數(shù)組賦值給動(dòng)態(tài)數(shù)組,要求是元素個(gè)數(shù)相同

二:隊(duì)列(先進(jìn)先出)

1:基礎(chǔ)知識(shí)

可插入,刪除,sort,search,push,pop,add,remove;可將固定數(shù)組或者動(dòng)態(tài)數(shù)組賦給隊(duì)列

2:表示

data_type queue_name[$] = {..} //隊(duì)列賦值時(shí)大括號(hào)前面不加單引號(hào)

實(shí)例:int b[$] = {3,4}; //{3,4}

b.insert(1,1); ? //{3,1,4} 在第一個(gè)元素后面添加1

b.delete(1);? //{3,4} 刪除元素1

b.push_front(6) ; //{6,3,4}

j = b.pop.back;? //{6,3}, j = 4

三:聯(lián)合數(shù)組

1:基礎(chǔ)知識(shí)

充分利用內(nèi)存里的離散空間,不連續(xù)空間;

索引值可以為整型,字符型,一維數(shù)組

2:表示

data_type associative_array_name[*/string]

3:示例

在內(nèi)存中的存儲(chǔ)

說明:標(biāo)準(zhǔn)數(shù)組存儲(chǔ)時(shí),所有的存儲(chǔ)器都用到了;聯(lián)合數(shù)組使用內(nèi)存時(shí),稀疏。

4:操作

遍歷(foreach),first,next,prev,delete,exits

四:數(shù)組的操作

1:算術(shù)運(yùn)算

sum,product,and,or and xor

例如下面是sum舉例:

說明:on.sum返回on的位數(shù),即一位,即值1(5個(gè)1相加取一位);將on.sum賦給位寬為8bit的summ,則返回值5。

2:sort,rsort(反過來排序),reverse,shuffle(打亂排序),find_first,find_first_with_index,unique(得到元素不重復(fù)的數(shù)組)

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

3:sum的擴(kuò)展用法

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

五:總結(jié)

Fixed Arrays: 在compile time時(shí)知道size;連續(xù)內(nèi)存存放,支持多維

Dynamic Arrays:run time時(shí)得到size;連續(xù)內(nèi)存;

Queues Arrays:FIFO/Stack

Associative Arrays:離散數(shù)據(jù)內(nèi)存,索引可以為數(shù)字或者字符串;用于hash

六:結(jié)構(gòu)體

將變量放在一起,比如總線協(xié)議放在結(jié)構(gòu)體里;默認(rèn)是unpacked存放

1:示例

使用:Instruction_Word.address = 24'hF00000;

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

第一個(gè)數(shù)據(jù)放在內(nèi)存的左側(cè)。

七:枚舉類型

1:表示

enum {red,green.blue} RGB? //red = 0,green = 1,blue = 2

2:枚舉值類型

**顯式指定枚舉值 enum{one = 1, five = 5, ten = 10} state;

**部分顯式指定值

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;因?yàn)槊杜e類型是兩位,賦值超過兩位

emum logic {on = 1'b1,OFF=1'bz} out;

總結(jié)

以上是生活随笔為你收集整理的sv队列和动态数组的区别_systemverilog学习(4)动态数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。