[Update] Verilog初级教程(5)Verilog中的多维数组和存储器_Reborn Lee-CSDN博客_verilog三维数组定义 | 多维 – Pickpeup

多维: นี่คือโพสต์ที่เกี่ยวข้องกับหัวข้อนี้

博文目录

    • 写在前面
    • 正文
      • 多维数组
      • 多维数组赋值
      • 内存
      • 寄存器变量应用实例
      • 寄存器阵列应用实例
    • 参考资料
    • 交个朋友

写在前面

上篇博客讲了单比特的变量称为标量,多比特的变量称为向量。其实向量就类似于C或者其他语言中的一维数组,如果是reg类型的变量,对应的硬件逻辑是寄存器。
本篇博文进一步延伸,Verilog中也存在多维数组,它对应的硬件逻辑可以是存储器,诸如RAM,ROM,以及FIFO等。

  • 个人微信公众号: FPGA LAB

正文

多维数组

还是简单一些说吧,多维数组在Verilog中对应的硬件元素可以是存储器,向量,也即一维数组,可以认为是深度为0的二维数组。
由于能对应于硬件的数组,例如RAM,通常有这么几个参数,深度,宽度,因此我们一般做到二维数组,当然更多维的不是不可以,不违背语法,但用途极为有限。

例如:

 
  reg        y1 

[

11

:

]

;

wire

[

:

7

]

y2

[

3

:

]

reg

[

7

:

]

y3

[

:

1

]

[

:

3

]

;

y1是一个reg类型的数组,其深度为12,宽度为1;
y2是一个wire类型的数组,其深度为4,宽度为8;
y3是一个多维(三维)数组,其意义不在多说。

上面的第二位定义,我们需要强调一下,还是统一规则为好,也就是宽度最好是高位在左,低位在右。
例如:

reg    

[

:

]

y1

[

11

:

]

;

wire

[

7

:

]

y2

[

3

:

]

多维数组赋值

对于多维数组赋值,也就是对存储器赋值,我们不能像如下方式:

reg 

[

7

:

]

a

[

15

:

]

=

;

这种方式是错误的,我们需要选中对应的元素进行赋值,例如:

reg 

[

7

:

]

a

[

15

:

]

;

initial begin a

[

]

=

16

'h0000

;

a

[

1

]

=

16

'h0101

;

a

[

]

[

]

=

1

'b0

;

a

[

]

[

1

]

=

1

'b1

;

for

(

integer i

=

;

i

<

16

;

i

=

i

+

1

)

begin a

[

i

]

<=

;

end end

上面的例子是在仿真文件中,当然在FPGA内,如此赋初值也是可以的,但更常用的还是通过系统函数readmemh

$

readmemh

(

"file_name"

,

mem_array

,

start_addr

,

stop_addr

)

;

举一个仿真的例子:

 
module des 

(

)

;

reg

[

7

:

]

mem1

;

reg

[

7

:

]

mem2

[

:

3

]

;

reg

[

15

:

]

mem3

[

:

3

]

[

:

1

]

;

initial begin

int

i

;

mem1

=

8

'ha9

;

$display

(

"mem1 = 0x%0h"

,

mem1

)

;

mem2

[

]

=

8

'haa

;

mem2

[

1

]

=

8

'hbb

;

mem2

[

2

]

=

8

'hcc

;

mem2

[

3

]

=

8

'hdd

;

for

(

i

=

;

i

<

4

;

i

=

i

+

1

)

begin $

display

(

"mem2[%0d] = 0x%0h"

,

i

,

mem2

[

i

]

)

;

end

for

(

int

i

=

;

i

<

4

;

i

+

=

1

)

begin

for

(

int

j

=

;

j

<

2

;

j

+

=

1

)

begin mem3

[

i

]

[

j

]

=

i

+

j

;

$

display

(

"mem3[%0d][%0d] = 0x%0h"

,

i

,

j

,

mem3

[

i

]

[

j

]

)

;

end end end endmodule

仿真结果:

ncsim

>

run mem1

=

0xa9

mem2

[

]

=

0xaa

mem2

[

1

]

=

0xbb

mem2

[

2

]

=

0xcc

mem2

[

3

]

=

0xdd

mem3

[

]

[

]

=

0x0

mem3

[

]

[

1

]

=

0x1

mem3

[

1

]

[

]

=

0x1

mem3

[

1

]

[

1

]

=

0x2

mem3

[

2

]

[

]

=

0x2

mem3

[

2

]

[

1

]

=

0x3

mem3

[

3

]

[

]

=

0x3

mem3

[

3

]

[

1

]

=

0x4

ncsim

:

*

W

,

RNQUIE

:

Simulation is complete

.

内存

前言和前面的标题中都已经涉及到了内存,例如RAM等,它们可以使用二维数组进行建模。
例如:

READ  [NEW] All About Budgerigars | budgerigar - Pickpeup

mem就是一个深度为256,宽度为8bit的内存空间,而它在Verilog中就是通过一个二维数组建模的。

寄存器变量应用实例

寄存器变量,相当于一个一维数组,下面定义一个寄存器变量,并对其进行操作:复位有效时,对寄存器变量赋初值,当sel以及wr有效时,将输入赋值给寄存器,否则,寄存器的值保持。
例如:

module des 

(

input clk

,

input rstn

,

input wr

,

input sel

,

input

[

15

:

]

wdata

,

output

[

15

:

]

rdata

)

;

reg

[

15

:

]

register

;

always @

(

posedge clk

)

begin

if

(

!

rstn

)

register

<=

;

else

begin

if

(

sel

&

wr

)

register

<=

wdata

;

else

register

<=

register

;

end end assign rdata

=

(

sel

&

~

wr

)

?

register

:

;

endmodule

硬件原理图显示,当写的控制逻辑处于有效状态时,会更新一个16位的触发器,当读的控制逻辑使能时,会返回当前值。

READ  [Update] KINEZO・キネパスが使える全国のTジョイ系列映画館一覧&チケット半券で得する優待対象施設特集 | キネゾー 品川 - Pickpeup

寄存器阵列应用实例

同理,举一个二位数组的例子:

 
module des 

(

input clk

,

input rstn

,

input

[

1

:

]

addr

,

input wr

,

input sel

,

input

[

15

:

]

wdata

,

output

[

15

:

]

rdata

)

;

reg

[

15

:

]

register

[

:

3

]

;

integer i

;

always @

(

posedge clk

)

begin

if

(

!

rstn

)

begin

for

(

i

=

;

i

<

4

;

i

=

i

+

1

)

begin

register

[

i

]

<=

;

end end

else

begin

if

(

sel

&

wr

)

register

[

addr

]

<=

wdata

;

else

register

[

addr

]

<=

register

[

addr

]

;

end end assign rdata

=

(

sel

&

~

wr

)

?

register

[

addr

]

:

;

endmodule

在硬件原理图中可以看到,数组的每个索引都是一个16位的触发器,输入地址用于访问特定的触发器。

参考资料

交个朋友


多维:郭文贵旗下郝海东叶钊颖夫妇和路德闫丽梦决裂的闹剧始末


https://www.youtube.com/channel/UC6mIndJxqBQThj40BuQicdA/join
点击“订阅”旁边的“加入”即可加入一号会员财经频道。
需要使用国外信用卡,或国内的双币种信用卡。无法用信用卡购买的网友可以通过淘宝购买Google gift card 进行充值,感谢支持!
激赏翊浩:paypal.me/yhzjgc
赠送给您1π! Pi是由斯坦福大学博士开发的一种新型数字货币,在全球拥有超过1千万成员。请点击此链接:
https://minepi.com/YHZXT
安装应用程序,并使用我的用户名(YHZXT)作为邀请码就能获得您的Pi。
Pi币社会学实验:
早期不需要任何投入的区块链3.0数字货币电报群:
https://t.me/joinchat/kADTrMwq4FU2MjIx
《一号Pi币》
苹果手机安卓手机到软件商店下载Pi Network软件
真名实姓手机号注册
邀请码:YHZXT
加入一号的社群互相增加算力加快挖币。
微信: +16199289185

郝海东 叶钊颖 闫丽梦

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูความรู้เพิ่มเติมที่นี่

多维:郭文贵旗下郝海东叶钊颖夫妇和路德闫丽梦决裂的闹剧始末

python基础 23 多维列表 (教学教程tutorial)


详细文字教程: https://morvanzhou.github.io/tutorials/
python3 简单教学教程
一般应用到多维数据我们会用到外部的模块或者是库,
大家可以观看我的 numpy\u0026pandas 教程:
https://www.youtube.com/watch?v=To3YL92HZyc\u0026list=PLXO45tsB95cKKyC45gatc8wEc3Ue7BlI4
如果只是简单的多维运算,就可以用列表来代替.

python基础 23 多维列表 (教学教程tutorial)

READ  [Update] Showa Denko K.K. 주식 - Investing.com | 쇼와덴코 - Pickpeup

大外宣内讧,多维开撕习近平;胡锡进的“瑟瑟发抖”,透露出习近平最怕的一件事 (政论天下第431集 20210528)天亮时分


✨今天節目的下半場,邀請大家移步會員網「希望之城」觀看: 👉https://landofhope.tv/zhangtianliang20210528?utm_source=ztl
‣‣ 神韻作品網站 ► https://www.shenyuncreations.com/
‣‣ 神盾VPN ►https://tipas.net/ 憑優惠代碼:SHZTL 可享受8折優惠
​‣‣ 捐款 ► https://donorbox.org/tianliang_
​‣‣ 新家 ►https://odysee.com/@TianLiangTime:7
​‣‣ 臉書 ► https://www.facebook.com/zhangtianliang/
​‣‣ 推特 ► https://twitter.com/zhangtianliang
​‣‣ 電報頻道 ► https://t.me/tianliangtime
​‣‣ 電報群組 ►https://t.me/tianliangtimegroup
​‣‣ SafeChat ►https://is.gd/d3eDK1
​‣‣ 自動翻牆手機APP下載 ►https://x.co/ohope
​‣‣ 合作邀約 \u0026 爆料反饋 ► videocenter@bayvoice.net
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
✅其它影片同樣精彩❗️
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

如果失去这个领域,我们将永远失去美国,失去繁荣和安全感;从川普停止资助教授“1619项目”学校说起 (天亮时分之哲思心语第9集20200913)天亮時分
https://youtu.be/ojBESouchn4​
​▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
⭕️ 訂購章天亮教授講史系列節目(只限美國境內)👇 憑促銷碼XTFY01享10%折扣
《笑談風雲》第一~三部 CD/DVD:https://is.gd/zmdzsK
​​���笑談風雲》第四部——兩宋繁華(CD):https://is.gd/8GarPk
​《笑談風雲》第五部——大明王朝(CD):https://is.gd/CooEKb
大外宣 内讧,多维开撕习近平 ;胡锡进 的“瑟瑟发抖”,透露出习近平最怕的一件事 (政论天下第431集 20210528)天亮时分
00:00 概述
01:07 胡錫進最近的「瑟瑟發抖論」
06:16 胡錫進的導彈核武威脅論和美國調查新冠感染緊密相關
12:19 美國可用經濟制裁和禁運高科技的產品制裁中共
15:24 多維指桑罵槐 借批胡錫進來批習近平搞歷史虛無主義
21:32 中共黨內在發生激烈權斗
23:22 習近平是真正的加速師, 加速中共滅亡
24:02 會員網上繼續談三個問題:
一是傳播謊言的成本還是很高的
二是美國一個小鎮可能成為撬動大選結果的一個槓桿
三是美國1月6號委員會的流產
26:07 結語

大外宣内讧,多维开撕习近平;胡锡进的“瑟瑟发抖”,透露出习近平最怕的一件事 (政论天下第431集 20210528)天亮时分

Arknights 多维合作 危机测试 2号区域 下


Arknights 多维合作 危机测试 2号区域 下

【公子快报】\”钢琴王子\”李云迪嫖娼被抓,北京朝阳群众又立功?没这么简单!参与娱乐节目全部下架消音,明星艺人沦为政治牺牲品!市场经济遭选择性封杀整肃,中共严打只为集权和内斗…


【公子沈第999期】
公子沈個人官網:https://gongzishen.com
加入會員:https://patreon.com/gongzishen 或 https://www.youtube.com/channel/UCrGSFNEBmCN0rqhATZels2Q/join

【公子快报】\

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูวิธีอื่นๆMusic of Turkey

ขอบคุณมากสำหรับการดูหัวข้อโพสต์ 多维

Leave a Comment