我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 置只读方式 >

一篇文章讲清楚寄存器属性及应用

归档日期:06-28       文本归类:置只读方式      文章编辑:爱尚语录

  去,获取不错的点击量。但是,当我想到我身边曾有很多比我优秀的验证工程师,他们都没有如此自称时,我就觉得这个标题我实在承受不起,哈哈!

  )端来看的。以mode_type为例,该域段的访问属性为RW(读写),表示该域段的值既可以被处理器写入,也可以被处理器读出。一般情况下,寄存器域段的访问属性与寄存器的访问属性一致。对于寄存器中的保留域,一般处理器是无法操作保留域段的信息的,可以认为保留域只可以被读出默认值“0”,可以将保留域的访问属性标记为“RO(只读)”。

  ,其中,域段mode_type和video_format的访问属性也是RW,但保留域的访问属性就是RO,即存在寄存器访问属性和域段访问属性不一致的情况。

  )通过其总线Master访问逻辑设计的总线Slave。总线Slave解析寄存器总线访问,如果是写操作,一般转换为对逻辑处理的配置,如果是读操作,一般转换为读取逻辑处理的上报结果。

  个。如果想一下记住25个访问属性,还是比较难的。因此,我们需要对访问属性先做一个归纳总结:1、

  所有包括W的访问属性,会将处理器的“数据”,传递给寄存器域段处理,但不一定是简单的赋值操作;3、

  读操作的处理范围是整个寄存器(因为读操作无法区分读哪个域段,不读哪个域段);4、

  写操作的处理范围可以是整个寄存器,也可以是某个域段,当需要区分域段时,需要通过1(或0)标记哪个域段信息被操作;5、

  所有包括“C”的访问,将清除(清0)对应处理范围的信息,处理范围可能是整个寄存器,也可能是整个域段;6、

  所有包括“S”的访问,将置位(置1)对应处理范围的信息,处理范围可能是整个寄存器,也可能是整个域段;7、

  所有包括“T”的访问,将翻转(0->

  1,1->

  0)对应处理范围的信息,处理范围可能是整个寄存器,也可能是整个域段;

  (读写)RW寄存器是逻辑设计中数量最多的寄存器,一般用于配置操作。其中的读操作是可测试性设计,写入的寄存器,处理器可以通过读取操作,判断写入信息是否正确。

  只写”方式,这样可以节省寄存器资源。我当时真的感到“天雷滚滚”!不怕被测试、软件,以及项目经理骂死,就这么设计好了。省的那点资源,不够费的功夫。

  (只读)RO寄存器是逻辑设计中数量第二多的寄存器,一般用于状态指示,或者信息采样。

  );当前的状态机状态(FSM_State);信息采样举例:当前处理数据的平均功率统计(

  寄存器的考虑因素包括:从设计便利性考虑:一段时间的统计信息,如计数值,或者平均功率,读操作完成后,数据清零,重新统计;

  的应用场景类似,有时候计数器置位后,下一次计数则从0xffff直接跳到0,比较方便。但是,本能上不喜好这样的设计,没有任何特殊理由。

  (读清)寄存器对比,相比较读清,写清可以在软件确信获取到信息后,再清除信息。需要注意的是,WC(写清)是与RC(读清)做选择,而不是和W1C(写1清)做选择。因为WC和RC都是对整个寄存器的操作,而W1C是对域段的操作,应用场景完全不同。

  当中断发生时,逻辑发送中断“脉冲”给寄存器域段缓存。处理器收到中断线指示(中断使能场景)后,读取相应的“中断状态指示寄存器”,获取是哪个信息导致的中断。处理器依次处理中断对应信息,完成中断处理程序后,向对应域段的写

  W1C寄存器,与某个RW寄存器的域段一一对应,该RW寄存器为“中断状态指示使能寄存器”,一个bit的使能,对应一个bit的中断状态指示。

  1清)要小心“电平指示”中断。对于“脉冲”指示的中断,中断信息缓存在寄存器域段里,如果清中断,系统中就不再有中断指示。但是,对于“电平指示”的中断,仅仅清除寄存器域段中的指示是不够的,还需要清除逻辑处理发出的持续电平信号。否则,即使清除了寄存器域段中的中断指示,逻辑处理的中断电平又会立刻将寄存器中的中断指示拉起。导致最终陷入“清中断

  (写1翻转)一个非常有意思的寄存器访问属性,最常用于“总线测试寄存器”。举例如下:

  时,写入8’h55,读出8’hAA,证明总线(APB/AXI)读写正常。

  从便利性的角度分析:可以多个软件进程调用写,只要有一个写操作,写操作就记录,且屏蔽后续的写操作。在某些场景下,这样的设计会比较方便;2、

  从“安全性”的角度分析:某些特殊信息,如DDR初始化启动指示等,上电后,仅操作一次。但是,从设计角度讲,这样的设计有些过于严格要求硬件,而放松软件。但是,硬件如何设计不合理,软件是没有办法挽回的。例如

  初始化,可能在某些场景,需要执行两次,如果软复位操作不到对应寄存器,系统就可能挂死。因此,要慎用W1(只写1次)访问属性的寄存器。

  其余寄存器访问属性其余寄存器访问属性,不是特别常见,本文就不再赘述。虽然更多的寄存器属性,可以带来应用上的方便,

  。当然,哪些寄存器访问属性是常用的,哪些是不常用的,这个问题可以好好探讨。

  验证工程师交流群”讨论(推荐),或者在公众号留言(查看不及时)。扫描下方的二维码,加入“IC验证工程师交流群”。由于群人数超过100人,目前只能通过邀请加入群聊。想加群的,先加吴杉的微信号birdshanshan,并在备注中说明加入“IC验证工程师交流群”。或者请已经加入群聊的其他人拉入即可。

  荐:发原创得奖金,“原创奖励计划”来了!举报悬赏令!现金奖励等你拿-->

本文链接:http://masterblue.net/zhizhidufangshi/203.html