国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【教程】Verilog中數(shù)組的表示

2023-02-01 09:46 作者:明德?lián)P易老師  | 我要投稿


FPGA中的二維數(shù)組其實不是真正意義上的數(shù)組,而是由多個寄存器組成的ROM或RAM。


具體來說,就是可以將內(nèi)存宣稱為一個reg類型的數(shù)組,這個數(shù)組中的任何一個單元都可以通過一個下標(biāo)去訪問。
這樣的數(shù)組定義方式如下:
reg [wordsize : 0]??memory_name [0 : memorysize];
其中[wordsize : 0]是內(nèi)存的寬度,而 [0 : memorysize]則是內(nèi)存的深度(也就是有多少存儲單元)。

如果要存儲一個值到某個單元中去,可以這樣做:
memory_name [address] = data_in;

如果要讀取每個單元的值,可以這么做:
data_out = memory_name [address];

由于Verilog不允許讀/寫一個位,所以需要讀寫一位或者多個位時的操作要麻煩點:
data_out = memory_name [address];
data_out_0 = data_out [0];
這里首先從一個單元讀出數(shù)據(jù),然后再取出數(shù)據(jù)的某一位的值。

初始化內(nèi)存
初始化內(nèi)存有多種方式,這里介紹的是使用$readmemb和$readmemh系統(tǒng)任務(wù)來講保存在文件中得數(shù)據(jù)填充到內(nèi)存單元中去。

$readmemb和$readmemh是類似得,只不過$readmemb用于內(nèi)存得二進制表示,

$readmemh用于內(nèi)存內(nèi)容得十六進制表示。這里以$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é)束地址。

如果對寄存器組進行在復(fù)位得時候進行置0,可以參考如何往寄存器組中寫入數(shù)據(jù)



【教程】Verilog中數(shù)組的表示的評論 (共 條)

分享到微博請遵守國家法律
镇远县| 云林县| 榆林市| 西宁市| 藁城市| 乐山市| 武夷山市| 焦作市| 朝阳区| 长岛县| 通州市| 曲靖市| 习水县| 海宁市| 镇平县| 吉林市| 舞阳县| 武鸣县| 永定县| 涿鹿县| 外汇| 周至县| 城市| 津南区| 平遥县| 瓦房店市| 邛崃市| 肃南| 西安市| 石首市| 南川市| 子洲县| 舞钢市| 安庆市| 醴陵市| 吕梁市| 饶平县| 洞口县| 英吉沙县| 康平县| 沭阳县|