搜索
bottom↓
回复: 22

关于FPGA里定义的寄存器赋初值的问题。

[复制链接]

出0入0汤圆

发表于 2012-12-24 17:34:10 | 显示全部楼层 |阅读模式
比如定义一个6位寄存器count, 要给它赋一个初始值5,能否这样下, 如果不是,该如何写? 谢谢

reg [5:0]count = 6'd5;

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-12-24 18:28:44 | 显示全部楼层
我经常这么干,也不知合理否。。。

出0入0汤圆

发表于 2012-12-24 18:33:36 | 显示全部楼层
6是二进制的位数吧
6'b101

出0入0汤圆

 楼主| 发表于 2012-12-24 19:33:36 | 显示全部楼层
xiaoqingy 发表于 2012-12-24 18:33
6是二进制的位数吧
6'b101

对,  d是十进制,  6'd5就是把一个6位的5写进去。

出0入0汤圆

发表于 2012-12-24 21:46:08 | 显示全部楼层
可以的~

出0入0汤圆

发表于 2012-12-25 08:56:23 | 显示全部楼层
做个实验看看,把赋的初值直接送到LED显示。

出0入0汤圆

 楼主| 发表于 2012-12-25 09:32:12 | 显示全部楼层
wjfblack 发表于 2012-12-25 08:56
做个实验看看,把赋的初值直接送到LED显示。

        刚做了实验,用的是ACTEL的A3P060, 发现这样写不行,上电4个灯都是亮的(说明Count = 4'b1111)

代码如下
// TOP.v
module TOP(
                LED,
                In

            );

output [3:0]LED;

reg [3:0]Count = 4'd05;



input In;

always@(negedge In)
begin
    Count = Count + 4'd01;
end
   

assign LED = ~Count;



endmodule

出0入0汤圆

发表于 2012-12-25 10:59:43 | 显示全部楼层
zouyf12 发表于 2012-12-25 09:32
刚做了实验,用的是ACTEL的A3P060, 发现这样写不行,上电4个灯都是亮的(说明Count = 4'b1111) ...

我在quarters ii 环境下这样用没有问题哦

出0入0汤圆

发表于 2012-12-25 11:15:15 | 显示全部楼层
zouyf12 发表于 2012-12-25 09:32
刚做了实验,用的是ACTEL的A3P060, 发现这样写不行,上电4个灯都是亮的(说明Count = 4'b1111) ...

你的In是个什么信号?按键还是时钟?频率高的话,你当然看不到LED的亮灭变化,只能看到4个灯都亮。

出0入0汤圆

发表于 2012-12-25 11:19:47 | 显示全部楼层
quartus下仿真出来的,代码完全没问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-12-25 11:36:07 | 显示全部楼层
XP85118978 发表于 2012-12-25 10:59
我在quarters ii 环境下这样用没有问题哦

就是像C语言一样,初始赋个值,那该寄存器里面就在上电以后就是这个数值是吗?   

不过其实我个人是觉得, 如果按照FPGA本来的性质, 不应该可以用这种方法赋初值的, 好比你用FPGA描述了一个类似74HC161的计数器, 那除非有外部信号驱动LOAD脚, 让它把设定值装载进去, 要不然这个芯片绝对不会在没有外部影响下,上电会自己把自己计数器的值变为某个特定值, 如果这样有可能,那单片机之类的东西就不需要上电复位这个东西了。

至于Altera 的芯片有这种功能,个人觉得不排除其FPGA本身具有这种上电后装载初值的功能, 毕竟RAM类型的FPGA本身上电前就需要装载配置芯片里的文件, 在装载是顺带把值改为初始值也不是不可以。   

以上个人愚见。

出0入0汤圆

 楼主| 发表于 2012-12-25 11:41:27 | 显示全部楼层
mayiqing888 发表于 2012-12-25 11:15
你的In是个什么信号?按键还是时钟?频率高的话,你当然看不到LED的亮灭变化,只能看到4个灯都亮。 ...

按键,而且只是做个样子,实际上从头到尾没有按过,然后 一上电每次都是全亮,偶尔是全灭, 反正没有一次是那个特定的值,  如果说上电时,按键的那个IO也会有电压的抖动造成计数器计数的话,那也不大可能每次都是0 和ff,

出0入0汤圆

发表于 2012-12-26 08:46:16 | 显示全部楼层
zouyf12 发表于 2012-12-25 09:32
刚做了实验,用的是ACTEL的A3P060, 发现这样写不行,上电4个灯都是亮的(说明Count = 4'b1111) ...

module TOP(
                LED,
                In

            );

output [3:0]LED;

reg [3:0]Count = 4'd05;

   

assign LED = Count;

直接这样测试看看。

出0入0汤圆

发表于 2012-12-26 08:47:59 | 显示全部楼层
mayiqing888 发表于 2012-12-25 11:15
你的In是个什么信号?按键还是时钟?频率高的话,你当然看不到LED的亮灭变化,只能看到4个灯都亮。 ...

没错,LED闪烁过快的话,人眼看起来是常亮的。

出0入0汤圆

发表于 2012-12-26 09:55:20 | 显示全部楼层
Verolog 2000 以后的版本是可以的。
-----------------------------------------------
材料:  
http://www.sutherland-hdl.com/on ... _2001_ref_guide.pdf

第13页的最后一行:
* Specifying the initial value as part of the variable declaration was added in Verilog-2000

出0入0汤圆

发表于 2012-12-30 18:22:37 | 显示全部楼层
reg赋值只是对仿真有用,对硬件没有影响,a公司的板子上电之后就是高电平。。

出0入0汤圆

发表于 2012-12-30 19:05:18 | 显示全部楼层
赋初值其实意义不大,一般有些状态机会有赋初值的要求,很多电路都没有要初值一定要在某个状态的,也就是不管是寄存器或者状态机在什么状态,一段时间之后都能自恢复,还要赋初值可以用复位的方式来做,同步复位异步复位都可以

出0入0汤圆

发表于 2012-12-30 19:44:27 | 显示全部楼层
遵循以下两点:
1、FPGA的Register是否可以赋初值和硬件结构相关。硬件不支持的就没有必要讨论。一般新的FPGA都能支持。
如果硬件能够支持赋初值,那么初值是绑定在BitStream里边的,完全可以利用之。Xilinx从S2/V2开始就支持寄存器/BlockRAM初值,A家应该从基本同代芯片开始支持。
X家可以用FPGA Editor中看到支持什么样的初值和配置;A家应该有类似工具查看。

2、如果硬件可以支持初值,那么就看综合工具如何支持初值。
早期的综合工具使用属性来支持初值,这个在VHDL支持的比较好,Verilog的属性(* *)是后来加入的功能;近几年的综合工具直接支持REG变量的初值,一个是reg a = blabal这样,另一个是init section的初值,都可以支持。
另外,有的综合工具支持从异步复位信号值中提取初值。
该信息会在综合工具书册中提供。

出0入0汤圆

发表于 2013-1-5 21:34:41 | 显示全部楼层
我经常直接赋初值

出0入0汤圆

发表于 2013-6-30 04:37:34 | 显示全部楼层
难道!!!!
你们都不知道 reg类型只能在行为描述always语句块里用吗!!!

大笑

出0入0汤圆

发表于 2013-6-30 04:38:28 | 显示全部楼层
修改:

难道!!!!
你们都不知道 reg类型只能在行为描述always语句块赋值吗!!!

大笑

出20入186汤圆

发表于 2013-6-30 08:57:37 | 显示全部楼层
同意,初始值还是用外部复位来做吧,一点问题也不会有,

出0入0汤圆

发表于 2013-7-1 22:52:24 | 显示全部楼层
VHDL貌似不行吧,一般都在复位时赋初值,每个设计都应该有个复位吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 05:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表