无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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ù)組的表示的評論 (共 條)

分享到微博請遵守國家法律
昭平县| 乌审旗| 江油市| 正宁县| 和静县| 同江市| 双城市| 曲麻莱县| 中方县| 漳浦县| 临城县| 文山县| 平顶山市| 烟台市| 朝阳区| 奎屯市| 平果县| 邳州市| 墨脱县| 文成县| 波密县| 沿河| 成都市| 兴和县| 博爱县| 贺兰县| 彭泽县| 吉隆县| 建平县| 西华县| 泾阳县| 宁武县| 漳州市| 徐汇区| 浠水县| 德江县| 中卫市| 溧水县| 威海市| 安龙县| 罗平县|