verilog reg 数组类型赋值后,仿真总是高阻

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog reg 数组类型赋值后,仿真总是高阻相关的知识,希望对你有一定的参考价值。

module inst(pc,clk);
input clk;
input pc;

reg [1:0] res [1:0];

always @(posedge clk)begin
res[0]<=2'b00;
res[1]<=2'b01;
res[2]<=2'b11;
res[3]<=2'b10;
end
endmodule

module tset;

reg clk;
reg pc;
inst i1(pc,clk);
wire [1:0] res [1:0];

always begin
clk=1;
#1;
clk=0;
#1;
end

initial begin
pc=0;
#10;
pc=1;
#10;
pc=0;
end
endmodule
下面是testbench,结果中的res是高阻

参考技术A 查看的信号线有误。
解决方法:
1、查看inst模块下的res信号值。
2、将Inst模块中res作为该模块输出连接到tset模块的res信号。
PS:test有拼写错误本回答被提问者和网友采纳

如何给Verilog中的数组初始化赋值

下面是我声明的391680深,8位宽的数组,用来存储一张BMP图像
reg [7:0]Image_BMP[391680:0];
求教各位大侠,这里如何将我的初始化值赋值(图片16进制数据)进去呢?
跪求大侠相助!!!!!!!
在线等待大侠相助!!!!!!我现在就在等。。。。

【1】Image_BMP应该是一个memory,数组是C元语言的叫法
【2】如果你只是仿真的话,可以用verilog的for循环语句把图片的数据一一存入
【3】如果用于综合,如果是Quartus的软件,建议你用
(* ram_init_file = "my_init_file.mif" *) reg [7:0]Image_BMP[391680:0];
这样的综合属性语句,my_init_file.mif存放你的BMP数据,请参考http://quartushelp.altera.com/11.1/mergedProjects/hdl/vlog/vlog_file_dir_ram_init.htm了解详情
【4】欢迎采纳,欢迎提问,祝你好运追问

请问大侠
【1】(* ram_init_file = "my_init_file.mif" *) reg [7:0]Image_BMP[391680:0]; //这个语句放在程序的什么位置?

【2】这个图片数据(0xFF)是以什么样的格式或结构存放于my_init_file.mif中的呢?
可以举个例子吗?

追答

【1】综合属性,放在memory变量声明的位置
【2】你是想问怎么得到mif文件吧,你用BmpToMif.exe这个软件就好了
【3】欢迎采纳!欢迎提问

参考技术A Image_BMP应该是个memory吧. 如果不是testbench那就用一些时钟周期写进去啊.

reg [8*391691:0] Image_Vector = "你的数据字符串";
integer i;
reg init;
always@(posedge clk, negedge rst) begin
if(rst) begin
i = 0;
init = 1'b1;
end else begin
if(i < 391681) begin
i = i + 1;
end else begin
init = 1'b0;
end
end
end

always@(posedge clk) begin
if(init) begin
Image_BMP[i] = Image_Vector[8*(i+1):8*i];
end
end

否则可以用for写入
reg [8*391691:0] Image_Vector = "你的数据字符串";
integer i;
initial begin
for(i = 0; i < 391691; i = i +1) begin
Image_BMP[i] = Image_vector[8*(i+1):8*i];
end
end
参考技术B 用一个for循环;
例如
for(i=0;i++;i<=391680)
begin
reg[i] = 8'h你的数据;
end
参考技术C 用个for循环追问

请问这些数据放程序的什么位置

以上是关于verilog reg 数组类型赋值后,仿真总是高阻的主要内容,如果未能解决你的问题,请参考以下文章

Verilog 中定义信号为啥要区分 wire 和 reg 两种类型

verilog 怎么给二维数组赋值

verilog仿真时,部分reg变量消失

FPGA verilog 小问题求解

怎么对Verilog定义的memory初始赋值

reg和wire的区别