女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Verilog中的二維數組說明

電子工程師 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2020-09-28 11:35 ? 次閱讀

Verilog中的二維數組

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

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

例如:

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

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

如果要存儲一個值到某個單元中去,可以這樣做:

my_memory [address] = data_in;

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

data_out = my_memory [address];

但要是只需要讀一位或者多個位,就要麻煩一點,因為Verilog不允許讀/寫一個位。這時,就需要使用一個變量轉換一下:(wolf點評:菜鳥易犯的錯誤,注意!)

例如:

data_out = my_memory[address];

data_out_it_0 = data_out[0];

這里首先從一個單元里面讀出數據,然后再取出讀出的數據的某一位的值。

初始化內存

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

語法

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

注意的是:

file_name是包含數據的文本文件名,mem_array是要初始化的內存單元數組名,start_addr 和 stop_addr是可選的,指示要初始化單元的起始地址和結束地址。

下面是一個簡單的例子:

module memory ();

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

initial begin

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

end

endmodule

這里使用內存文件memory.list來初始化my_memory數組。

而下面就是一個內存文件的例子。

// Comments are allowed (wolf點評:段注釋也可以,空行空格不影響!)

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

對于內存文件,要注意的是下列幾點:

a、注釋標記//在內存文件中是被允許的;

b、使用@符號將跳到新的目標地址,沒有@符號就表示地址將順序遞增。

關于這個系統任務,有下列常見的用法:

1、順序初始化所有的數組單元;

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

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

2、只初始化部分的數組單元;

這種情況下,可以使用@符號來指示下一個要初始化的地址,然后對該地址單元進行初始化。例

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

// 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、只初始化數組的地址區間的一部分單元。

這個時候,還可以使用$readmemh任務的start_addr 和 stop_addr選項來指定初始化的范圍。

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

內存文件memory.list定義為:

CC

AA

55

5A

69

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Verilog
    +關注

    關注

    28

    文章

    1365

    瀏覽量

    111799
  • 數組
    +關注

    關注

    1

    文章

    419

    瀏覽量

    26368

原文標題:Verilog中的二維數組及其初始化

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于STM32的二維碼識別源碼+二維碼解碼庫lib

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

    基于STM32的二維碼識別源碼+二維碼解碼庫lib

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

    JCMsuite二維光柵的定義和仿真

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

    基于RK3576開發板的二維碼生成

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

    請問LabView如何直接發送二維數組到DMD上顯示?

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

    二維影像掃描引擎可以應用于哪些行業?

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

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

    在現代科技快速發展的今天,二維碼掃描已經成為我們日常生活和工作不可或缺的一部分,無論是支付、物流追蹤還是信息獲取,都離不開二維碼的掃描。那么,二維掃描頭的有效掃描距離究竟是多少?又有
    的頭像 發表于 01-15 16:26 ?948次閱讀
    <b class='flag-5'>二維</b>掃碼頭有效掃描距離是多少,影響<b class='flag-5'>二維</b>掃描頭掃碼的因素有哪些

    RS232接口的二維影像掃描引擎,廣泛用在醫療設備上掃一二維

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

    二維內嵌掃碼模組用于自助儲物柜,快速掃描各種一二維條碼

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

    指針數組二維數組有沒有區別

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

    labview按行讀取二維數組之后再按讀取順序重新組成二維數組如何實現?

    labview用了index Array按索引一行行讀取二維數組之后想再按讀取順序重新組成一個二維數組如何實現,即第一次讀取的作為第一行,第
    發表于 10-25 21:06

    請問labview是否無法向matlab傳遞3數組

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

    FPC軟板二維碼標識功能?簡直是黑科技!

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

    Labview生成二維

    ?Labview 的一個Demo,生成二維碼。
    發表于 08-01 17:12 ?16次下載

    二維碼掃碼器/二維碼讀取設備嵌入園區閘機系統的應用

    二維碼閱讀設備集成至閘機系統,主要功能是通過掃描用戶的二維碼通行證來實施園區出入口的自動收費。此技術憑借二維碼的便利性及掃描設備的高效性,極大地提高了收費效率和精確度,減少了由于人
    的頭像 發表于 06-05 14:46 ?684次閱讀
    <b class='flag-5'>二維</b>碼掃碼器/<b class='flag-5'>二維</b>碼讀取設備嵌入園區閘機系統<b class='flag-5'>中</b>的應用