verilog hdl 中的寄存器数组可以按位复赋值吗?如果可以的话,那么索引号必须是常量吗?

比如reg [7:0]data;a=reg[0]或者a=reg[i]

第1个回答  2012-08-05
你要按数字电路来思考,别用C的想法,需要一段时间。
你说的是寄存器组,但你举例可是寄存器。
寄存器编程时是要赋初值的,这是一个好习惯,而寄存器组是不允许赋初值的,也就是说声明是要这样:reg [7:0] count = 0 ; reg [15:0] data [1023:0];前者是寄存器,后者是寄存器组或者叫存储器。
至于你说索引必须是常量,这个常量只要在触发时是个常量就行,举个例子就是编译器是可以编译for循环的,包括里面常用的i = i + 1,但是这绝对不是一个好习惯,建议不要使用这种方法,想都别想。

verilog hdl 中的寄存器数组可以按位复赋值吗?如果可以的话,那么索引...
寄存器编程时是要赋初值的,这是一个好习惯,而寄存器组是不允许赋初值的,也就是说声明是要这样:reg [7:0] count = 0 ; reg [15:0] data [1023:0];前者是寄存器,后者是寄存器组或者叫存储器。至于你说索引必须是常量,这个常量只要在触发时是个常量就行,举个例子就是编译器是可以编译f...

Verilog HDL基本语法规则
7. 数据类型:wire表示线网型变量,值随输入变化;reg代表寄存器型,具有状态保持;memory型用于模拟存储器,通过数组索引访问。在编写Verilog代码时,需要注意避免多重驱动,即避免同一变量被多个信号同时赋值,这可能导致逻辑值不确定。同时,寄存器变量的赋值只能在initial或always块内进行,而memory型变量通...

verilog中的数组和存储器
数组声明可包括标量和向量,多维数组可通过指定地址范围创建。Verilog允许使用reg,wire,integer,real四种数据类型进行数组声明。访问数组元素需指定每个维度的索引。不同数据类型可在Verilog中构建数组,但n个1bit的reg与n位向量在存储上有所区别。举例说明,一个8bit向量mem1,深度为4的8bit数组mem2,以...

verilog模块中各个变量的类型怎么确定
时间寄存器:仿真是按照仿真时间进行的,verilog使用一个特殊的时间寄存器数据类型来保存仿真时间。时间变量通过使用关键字time来声明,其宽度与具体实现无关,最小为64位。通过调用系统函数$time可以取得当前的仿真时间。数组 Verilog中允许声明reg、integer、time、real、realtime及其向量类型的数组,对数组的维...

verilog中的基本数据类型
数组在Verilog中广泛使用,可以是reg、wire等类型的多维结构,允许指定不同维度的索引。尽管与向量类似,但它们在结构上有着本质区别。存储器变量则是寄存器数组,用于模拟RAM或ROM的行为。参数是常量,用parameter声明,不能改变;而localparam用于局部定义的常量,其值不可修改。字符串则存储在reg变量中,...

fpga中 要想写到地址的某一位 可以吗
可以,一个比较简单的方式是,将数据总线的一个位直接置位即可。例如选中地址,直接在Data总线某位赋值 Data[指定位] <= 指定值,其他位硬件会保持原值不变。祝好~

相似回答