在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6479|回复: 6

[求助] 请教Verilog代码编写风格的问题

[复制链接]
发表于 2011-9-9 17:57:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
本帖最后由 刺猬精灵 于 2011-9-10 19:39 编辑

always @(posedge clk_sys or negedge rst_n or byte_state)
请哪位高手告诉我下这种触发条件风格是否正确?基中,clk_sys为系统时钟,rst_n为复位信号,byte_State是模块里的一个信号状态。
我在NC-Verilog和modelsim这两个软件都能仿真通过且正确(能出现我想要的结果)。但在quartus中综合时就出错,我在网上查了有人也出现过这样的错误,但没说原因,只说了把最后那个敏感信号去掉。把上面那句话改为
always @(posedge clk_sys or negedge rst_n )则综合成功,但功能就不能满足了。我只是想知道这是为什么?不同的软件还会出现问题。请哪位高手给我讲下。谢谢了。。。。
补充说明:byte_state是一个状态,我在always里把byte_state加为敏感列表,是因为我想在byte_state状态改变时,受byte_state控制输出变量都马上变化,如果不把byte_State加入敏感列表中,受byte_state控制输出的变量就会在byte_State改变后的下一个时钟才改变。这样不适合我的功能。请问哪位能告诉我咋处理?
发表于 2011-9-9 18:24:47 | 显示全部楼层
always @(posedge clk_sys or negedge rst_n or byte_state)
语句下面的信号则不一定是受时钟控制,即只要byte_state为高,时钟上升沿来没来,都采样。

always @(posedge clk_sys or negedge rst_n )

if(byte_state)
发表于 2011-9-9 18:39:10 | 显示全部楼层
用楼上的方法试试吧
发表于 2011-9-9 20:43:43 | 显示全部楼层
本帖最后由 guoyu 于 2011-9-9 20:47 编辑

要深刻理解语言的风格问题,不能单纯从语法出发。ASIC和FPGA的基本时序单元是D触发器,D-FF有clk,异步rst,d,q等多个端口。而always@(posdege clk, negedge rst_n)可以理解为D-FF的时钟为上升沿触发,并且采用低电平有效的异步复位电路。
always@(posedge clk, negedge rst_n)
begin
      if(!rst_n)
      ...
      else
      ......
end
是标准的描述方式。也就是说,时钟是唯一同步触发条件,异步复位有更高的优先级。D-FF很多都带有Enable端口,也就是只有ena有效时,d才传到q。如果这是你的本意(显然不是,因为你用的是or),要注意用else if (<ena>)替换上面程序的else。
Quartus综合报错,是因为它不理解多余的信号应该怎样接到电路中去。你发过好几个帖子,看得出设计的时间很紧,但如果你不去钻研一些微电子的教材,水平很难有本质的提高。建议磨刀不误砍柴工。
 楼主| 发表于 2011-9-9 20:57:45 | 显示全部楼层
回复 2# shufeng123


    那个byte_state在always里使用的条件是case(byte_state)。。。。如果我去掉always里的触发条件,功能就不正确了。换成你说的if(byte_state),应该也一样不正确,不过我会试试的。谢谢。。。
 楼主| 发表于 2011-9-9 21:04:22 | 显示全部楼层
回复 4# guoyu


    非常谢谢你的关注,我的确是在赶时间。不过我倒是想请教你个问题,你刚说建议我多看看微电子方面的书。我是在培训数字IC,学过半导体工艺,器件基础。老师还叫我们必买一本书《数字集成电路-电路、系统设计》,我感觉这本很难,因为我是通信专业的,所以看那书上的内容很吃力,只是参加培训去学的微电子。但前段时间一个在做数字IC的工程师说那书没用。我都不知道该看什么书才叫有用。我这学期都要找工作了,所以就想看对找工作有用的书,请你介绍下。。。
发表于 2011-9-10 13:06:33 | 显示全部楼层
也许微电子的用不着,找一本介绍FPGA内部结构,而且还能和HDL语言有一点挂钩的就好,不过印象中这一类的真少,还是要靠自己多设计,多看综合的电路图来一点一点积累才好。搞硬件设计,欲速则不达呀。理解电路结构是关键,而不是掌握语法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-5-21 13:52 , Processed in 0.029700 second(s), 8 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表