一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Verilog中的二維數(shù)組說明

電子工程師 ? 來源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2020-09-28 11:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Verilog中的二維數(shù)組

Verilog中提供了兩維數(shù)組來幫助我們建立內(nèi)存的行為模型。具體來說,就是可以將內(nèi)存宣稱為一個(gè)reg類型的數(shù)組,這個(gè)數(shù)組中的任何一個(gè)單元都可以通過一個(gè)下標(biāo)去訪問。這樣的數(shù)組的定義方式如下:

reg [wordsize : 0] array_name [0 : arraysize];

例如:

reg [7:0] my_memory [0:255];

其中 [7:0] 是內(nèi)存的寬度,而[0:255]則是內(nèi)存的深度(也就是有多少存儲(chǔ)單元),其中寬度為8位,深度為256。地址0對應(yīng)著數(shù)組中的0存儲(chǔ)單元。

如果要存儲(chǔ)一個(gè)值到某個(gè)單元中去,可以這樣做:

my_memory [address] = data_in;

而如果要從某個(gè)單元讀出值,可以這么做:

data_out = my_memory [address];

但要是只需要讀一位或者多個(gè)位,就要麻煩一點(diǎn),因?yàn)閂erilog不允許讀/寫一個(gè)位。這時(shí),就需要使用一個(gè)變量轉(zhuǎn)換一下:(wolf點(diǎn)評:菜鳥易犯的錯(cuò)誤,注意?。?/p>

例如:

data_out = my_memory[address];

data_out_it_0 = data_out[0];

這里首先從一個(gè)單元里面讀出數(shù)據(jù),然后再取出讀出的數(shù)據(jù)的某一位的值。

初始化內(nèi)存

初始化內(nèi)存有多種方式,這里介紹的是使用readmemb和readmemb和readmemh系統(tǒng)任務(wù)來將保存在文件中的數(shù)據(jù)填充到內(nèi)存單元中去。readmemb和readmemb和readmemh是類似的,只不過readmemb用于內(nèi)存的二進(jìn)制表示,而readmemb用于內(nèi)存的二進(jìn)制表示,而readmemh則用于內(nèi)存內(nèi)容的16進(jìn)制表示。這里 以$readmemh系統(tǒng)任務(wù)來介紹。

語法

$readmemh(“file_name”, mem_array, start_addr, stop_addr);

注意的是:

file_name是包含數(shù)據(jù)的文本文件名,mem_array是要初始化的內(nèi)存單元數(shù)組名,start_addr 和 stop_addr是可選的,指示要初始化單元的起始地址和結(jié)束地址。

下面是一個(gè)簡單的例子:

module memory ();

reg [7:0] my_memory [0:255];

initial begin

$readmemh(“memory.list”, my_memory);

end

endmodule

這里使用內(nèi)存文件memory.list來初始化my_memory數(shù)組。

而下面就是一個(gè)內(nèi)存文件的例子。

// Comments are allowed (wolf點(diǎn)評:段注釋也可以,空行空格不影響?。?/p>

CC // This is first address i.e 8‘h00

AA // This is second address i.e 8’h01

@55 // Jump to new address 8‘h55

5A // This is address 8’h55

69 // This is address 8‘h56

對于內(nèi)存文件,要注意的是下列幾點(diǎn):

a、注釋標(biāo)記//在內(nèi)存文件中是被允許的;

b、使用@符號(hào)將跳到新的目標(biāo)地址,沒有@符號(hào)就表示地址將順序遞增。

關(guān)于這個(gè)系統(tǒng)任務(wù),有下列常見的用法:

1、順序初始化所有的數(shù)組單元;

這種情況下,可以使用@符號(hào)來指示地址,也可以不使用它,而只在每一行存放要存放的數(shù)據(jù)。

這樣數(shù)據(jù)將順序按地址遞增存放,從0地址開始。

2、只初始化部分的數(shù)組單元;

這種情況下,可以使用@符號(hào)來指示下一個(gè)要初始化的地址,然后對該地址單元進(jìn)行初始化。例

如下列的內(nèi)存文件就只初始化8’h00,8‘h01,8’h55和8‘h564個(gè)內(nèi)存地址單元。

// Comments are allowed

CC // This is first address i.e 8’h00

AA // This is second address i.e 8‘h01

@55 // Jump to new address 8’h55

5A // This is address 8‘h55

69 // This is address 8’h56

3、只初始化數(shù)組的地址區(qū)間的一部分單元。

這個(gè)時(shí)候,還可以使用$readmemh任務(wù)的start_addr 和 stop_addr選項(xiàng)來指定初始化的范圍。

例如,只初始化100到104這5個(gè)單元,就可以這么做:

內(nèi)存文件memory.list定義為:

CC

AA

55

5A

69

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

    關(guān)注

    29

    文章

    1367

    瀏覽量

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

    關(guān)注

    1

    文章

    420

    瀏覽量

    26561

原文標(biāo)題:Verilog中的二維數(shù)組及其初始化

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于STM32的二維碼識(shí)別源碼+二維碼解碼庫lib

    基于STM32的二維碼識(shí)別源碼+二維碼解碼庫lib,推薦下載!
    發(fā)表于 05-28 22:04

    基于STM32的二維碼識(shí)別源碼+二維碼解碼庫lib

    基于STM32的二維碼識(shí)別源碼+二維碼解碼庫lib項(xiàng)目實(shí)例下載! 純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第一時(shí)間告知,刪除內(nèi)容!
    發(fā)表于 05-23 20:45

    JCMsuite二維光柵的定義和仿真

    光柵是光衍射的周期性結(jié)構(gòu)。它能把入射的光束衍射成幾束向不同方向發(fā)散的光束。 二維光柵 二維光柵在兩個(gè)水平方向上都具有周期性。存在兩個(gè)晶格矢量因此當(dāng)幾何結(jié)構(gòu)移位一個(gè)晶格矢量時(shí), 下圖顯示了一個(gè)正方形
    發(fā)表于 05-19 08:53

    基于RK3576開發(fā)板的二維碼生成

    檔介紹了如何快速上手二維碼生成,包括源碼工程下載、開發(fā)環(huán)境搭建、例程編譯與運(yùn)行。通過EASY-EAI API,用戶可輕松生成二維碼圖片,API封裝了二維碼生成工具,提供了詳細(xì)的調(diào)用說明
    的頭像 發(fā)表于 05-10 15:19 ?652次閱讀
    基于RK3576開發(fā)板的<b class='flag-5'>二維</b>碼生成

    請問LabView如何直接發(fā)送二維數(shù)組到DMD上顯示?

    LabView如何直接發(fā)送二維數(shù)組到DMD上顯示。 在LabView,調(diào)用int LoadData(UCHAR*RowData,long length)遇到兩個(gè)問題,1
    發(fā)表于 02-27 07:30

    二維影像掃描引擎可以應(yīng)用于哪些行業(yè)?

    零售行業(yè),二維影像掃描引擎成為提升顧客購物體驗(yàn)和店鋪運(yùn)營效率的關(guān)鍵工具。從商品庫存管理到快速結(jié)賬,二維掃描器能夠迅速識(shí)別商品上的條碼或二維碼,減少人工錄入錯(cuò)誤,
    的頭像 發(fā)表于 02-14 14:59 ?530次閱讀
    <b class='flag-5'>二維</b>影像掃描引擎可以應(yīng)用于哪些行業(yè)?

    二維掃碼頭有效掃描距離是多少,影響二維掃描頭掃碼的因素有哪些

    在現(xiàn)代科技快速發(fā)展的今天,二維碼掃描已經(jīng)成為我們?nèi)粘I詈凸ぷ?b class='flag-5'>中不可或缺的一部分,無論是支付、物流追蹤還是信息獲取,都離不開二維碼的掃描。那么,二維掃描頭的有效掃描距離究竟是多少?又有
    的頭像 發(fā)表于 01-15 16:26 ?1166次閱讀
    <b class='flag-5'>二維</b>掃碼頭有效掃描距離是多少,影響<b class='flag-5'>二維</b>掃描頭掃碼的因素有哪些

    RS232接口的二維影像掃描引擎,廣泛用在醫(yī)療設(shè)備上掃一二維

    在醫(yī)療設(shè)備領(lǐng)域,二維碼的應(yīng)用日益廣泛,它作為信息的快速傳遞和識(shí)別手段,為醫(yī)療管理、患者追蹤、設(shè)備維護(hù)等環(huán)節(jié)帶來了極大的便利。而在這背后,RS232接口的二維影像掃描引擎扮演著至關(guān)重要的角色,它以
    的頭像 發(fā)表于 12-23 16:02 ?623次閱讀
    RS232接口的<b class='flag-5'>二維</b>影像掃描引擎,廣泛用在醫(yī)療設(shè)備上掃一<b class='flag-5'>維</b><b class='flag-5'>二維</b>碼

    二維內(nèi)嵌掃碼模組用于自助儲(chǔ)物柜,快速掃描各種一二維條碼

    隨著科技的飛速發(fā)展,自助儲(chǔ)物柜已成為我們?nèi)粘I?b class='flag-5'>中不可或缺的一部分,為公眾提供了極大的便利。而這一切的背后,離不開二維內(nèi)嵌掃碼模組的強(qiáng)大支持。本文將深入探討二維內(nèi)嵌掃碼模組在自助儲(chǔ)物柜
    的頭像 發(fā)表于 12-04 15:56 ?507次閱讀
    <b class='flag-5'>二維</b>內(nèi)嵌掃碼模組用于自助儲(chǔ)物柜,快速掃描各種一<b class='flag-5'>維</b><b class='flag-5'>二維</b>條碼

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

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

    二維碼識(shí)讀設(shè)備有哪些類型

    隨著二維碼應(yīng)用的日益普及,各類二維碼識(shí)讀設(shè)備也應(yīng)運(yùn)而生。這些設(shè)備不僅極大地方便了我們的日常生活,也為企業(yè)提供了更加高效便捷的服務(wù)。那么,你知道二維碼識(shí)讀設(shè)備都有哪些類型嗎?讓我們一起來了解一下。據(jù)
    的頭像 發(fā)表于 11-05 16:10 ?939次閱讀
    <b class='flag-5'>二維</b>碼識(shí)讀設(shè)備有哪些類型

    labview按行讀取二維數(shù)組之后再按讀取順序重新組成二維數(shù)組如何實(shí)現(xiàn)?

    labview用了index Array按索引一行行讀取二維數(shù)組之后想再按讀取順序重新組成一個(gè)二維數(shù)組如何實(shí)現(xiàn),即第一次讀取的作為第一行,第
    發(fā)表于 10-25 21:06

    請問labview是否無法向matlab傳遞3數(shù)組

    經(jīng)過一些測試,發(fā)現(xiàn)在matlab script只能傳二維數(shù)組,利用打包.net庫,好像還是只能傳遞二維數(shù)組。 是不是從底層就不支持,這兩種
    發(fā)表于 10-22 20:14

    FPC軟板二維碼標(biāo)識(shí)功能?簡直是黑科技!

    現(xiàn)在的黑科技是越來越多了,板子上印個(gè)二維碼用手機(jī)掃一下就能將 將二維碼變成你的電子產(chǎn)品說明書,用來介紹產(chǎn)品功能;呈現(xiàn)教學(xué)視頻, 個(gè)人覺得圖文二維碼的功能十分豐富,不僅擁有產(chǎn)品溯源與出入
    發(fā)表于 08-07 17:46

    Labview生成二維

    ?Labview 的一個(gè)Demo,生成二維碼。
    發(fā)表于 08-01 17:12 ?20次下載