verilog 怎么对 寄存器组 赋初值

作者&投稿:鄹祥 (若有异议请与网页底部的电邮联系)
verilog中寄存器的初始值问题,erilog 怎么对 寄存器组 赋~

嗯,对的,不能定义随机长度的寄存器。不仅不行,而且也不能定义可变长度的寄存器。因为FPGA最终生成的都是固定结构的硬件电路,这一点和软件程序不一样,设置一个变量,32位,可以随时改变这个32位数的大小,而在FPGA中,一个寄存器的长度就是一个固定值,最终生成的电路也是一个固定数,这个寄存器存放的值可以随时改变,但是它的空间,长度却不能动态的变化,可以理解吗?所以你说的有道理,但不是违反了Verilog的语法规则,而是违反了真实的屋里情况。呵呵,希望我的解释对你有帮助了

可以直接在声明中赋值,不要用initial.....

一般这样的寄存器初始化都在复位时候:
always@(poesdge clk or negedge N_rst)
begin
if(!N_rst)
begin
lut[ 1 ]< = 8'd52;
lut[ 2 ] <= 8'd1;
……
end
else
……
end

有一个系统任务可以支持初始化一个寄存器阵列的.好像是$readmemb (寄存器组名,初始化文件名).这个系统任务本身的资料建议你去看一下夏宇文的书,而产生的效果则跟你用的芯片所对应的开发软件有关,比如说用于初始化的数据文件应该保存在什么地方,是否需要加后缀名等等.

你的定义和赋值冲突了,你既然定义了reg型,就不能用assign语句对其赋值,assign只能为wire型参数进行赋值

要是你准备按assign赋值,就把最上头的定义改成wire [7:0] mem [15:1];
要么就改下面的assign为always

放在ALWAYS里面赋值。REG型不能用ASSIGN。


福清市15563564822: verilog 怎么对 寄存器组 赋初值 -
阙龚瑞易: 一般这样的寄存器初始化都在复位时候:always@(poesdge clk or negedge N_rst)beginif(!N_rst)beginlut[ 1 ]< = 8'd52; lut[ 2 ] <= 8'd1;……endelse……end

福清市15563564822: 急~~怎么用verilog写rtl8019as的寄存器初始化程序啊?驱动的每个寄存器先后顺序是怎样的?
阙龚瑞易: 首先,你应该明白,二维寄存器是神马. . . . 巩固设置相应的选项,二维寄存器将被优化的内存(ROM) 那么如何ROM或RAM初始化?这应该是很清楚的. 控制地址,你需要将数据写入到一个固定的地址. 第[SIGNAL_DATA_WIDTH-1:0]...

福清市15563564822: 寄存器怎么与外设相连 verilog -
阙龚瑞易: module sipo(output reg [3:0] q, input wire data_in, clk,clr); always@(posedge clk) beginif(clr)q<=4'b0;elseq<={q[2:0],data_in};endendmodule

福清市15563564822: 求verilog语言分别编写一个8位的ram和rom存储器 -
阙龚瑞易: ROM = read only memory RAM = Random Access Memory 这两个都是做存储用的. FPGA上面应该都有分布式RAM和块RAM,直接声明就可以用了. 楼主是意思是写一个接口?还是就用verilog去描述一个RAM和ROM?我明白你的意思了.你要写一个基于FPGA的存储器,对于RAM,在开发板上应该是有的,这个是现成的东西,你所要做的是,设计一定的接口电路,使其能和外部进行数据的接受和发送.如果非要说,用verilog描述ram,这个东西就是一堆寄存器组.所以你要根据ram和rom的时序要求、带宽要求来写一个interface,使得能够和外部交互.谢谢

福清市15563564822: 在Verilog中如何像C语言中使用一个寄存器作为一个数组的下标?请大虾指导背锅侠.问题如下. -
阙龚瑞易: FPGA可以使用数组,但一般不建议使用.因为代码是简单了,但看代码的人就会比较晕.FPGA本来就是直来直去的东西.建议多少个数组,就定义多少个寄存器.

福清市15563564822: 求问verilog 数组的使用T.T -
阙龚瑞易: 1. 有 3个4bit数组2. 一般声明为 reg [3:0] mem_xx [0:2],注意顺序.3. 数组的初始化可用readmemh和readmemb4. 使用时直接mem_xx[2] = 4'bxxxx这样就好.

福清市15563564822: FPGA如何调用数据寄存器? -
阙龚瑞易: 寄存器直接是REG类型 语言中直接定义,原理图中直接是D触发器

福清市15563564822: Verilog 怎样生成加有高斯白噪声的正弦信号 -
阙龚瑞易: 用MATLAB生成你所说的加了高斯白噪声的正弦波信号,定点采样,采样周期根据要求来,一般2倍以上,然后在MATLAB中将定点结果打印到txt文件或随便什么纯文本文件.在verilog中,用readmem函数读入该文档,将数据存到寄存器组中,然后用一个时钟驱动每拍从寄存器组中读出一个数据,在仿真波形中选择模拟模式显示即可.

福清市15563564822: verilog二维数组如何在modelsim中仿真? -
阙龚瑞易: 可以写入txt文件进行验证!还可以定义一个寄存器,然后读mem中的某个地址对应的值

福清市15563564822: verilog 如何存一组常数 -
阙龚瑞易: 用parameter name = 常数语句来存取常数,需要用时直接调用name即可.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网