这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » reg [29:0] rom_10Hz_jingpin [0:99];类型的存贮

共4条 1/1 1 跳转至

reg [29:0] rom_10Hz_jingpin [0:99];类型的存贮器用for循环初始化的问题

菜鸟
2014-09-24 23:31:01     打赏
reg [29:0] rom_10Hz_jingpin [0:99];
integer Index_10hz_jingpin =0;

reg [29:0] cnt_test;reg startwrite;
always @(posedge c0 or negedge rst_n)
	if (!rst_n) begin  cnt_test <= 30'd0; startwrite<=1'b0; end
	else 
		begin 
			cnt_test <= cnt_test+1'b1;
			if (cnt_test==30'd600000000) begin cnt_test <= 30'd0;startwrite<=1'b1;end
		end
always @(posedge c0)
		if (startwrite ==1'b1)
		begin
			for(Index_10hz_jingpin=0;Index_10hz_jingpin<100;Index_10hz_jingpin=Index_10hz_jingpin+1)
			rom_10Hz_jingpin[Index_10hz_jingpin]=2500000*(Index_10hz_jingpin+1);
		end

晶振50mhz 20ns 
程序要实现的功能是:由某个变量控制rom_10Hz_jingpin 变量的初始化,即当控制变量为1时,写入数据到rom_10Hz_jingpin 中,然后利用rom_10Hz_jingpin 中的数据点亮led,但是综合后情况并非预期那样。
而是fpga上电后,数据就应该写入rom_10Hz_jingpin 中了,因为上电后,led就开始点亮了,并没有受到控制变量的控制。
本来程序应该在600000000*20ns = 12s后才向rom_10Hz_jingpin 变量填充数据,即 led应该在12s后才开始闪烁的,现在是上电后就开始闪烁了,不解中。。。。。
但是我实验了,for语句可以被综合的,修改rom_10Hz_jingpin 初始化化的数据,然后综合下载到fpga中,新数据生效了,说明for语句起作用了,但是为什么for语句是一上电就执行了呢》?



关键词: for循环综合    

菜鸟
2014-09-24 23:51:44     打赏
2楼

您的意思是代码写的有问题,也就是逻辑有问题吧

但是我试过了,都不行,还是有其他的解决办法


菜鸟
2014-09-24 23:53:02     打赏
3楼

您的意思是代码写的有问题,也就是逻辑有问题吧

但是我试过了,都不行,还是有其他的解决办法


现在的问题是,想这么初始化,要不然用ram,但是ram要在统一的时钟里面,还不会用


菜鸟
2014-09-27 10:40:18     打赏
4楼

难道fpga一上点后,不是自动复位吗,您说的是 这条语句

if (!rst_n) begin  cnt_test <= 30'd0; startwrite<=1'b0; end在上点后没有执行
导致startwrite 为1


我试试,谢谢了,


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]