frmngil 发表于 2008-11-17 14:04:54

【求教】always @()敏感信号列表的问题【恢复】

我用的是QUARTUS II 8.0 综合

module liangzhu(sys_clk,rst_n,sp);

    input            sys_clk,rst_n;

    output        sp;

   //-----------------------------------------------------------------------------------------



  always @ (posedge sys_clk or posedge rst_n)         //always @ (posedge sys_clk or  rst_n)

    if (!rst_n)

        clk_cnt <= 24'd0;

    else

        clk_cnt <= clk_cnt + 1'b1;



都综合不了,报错

   //-----------------------------------------------------------------------------------------

而   always @ (posedge sys_clk or negedge rst_n)

    if (!rst_n)

        clk_cnt <= 24'd0;

    else

        clk_cnt <= clk_cnt + 1'b1;

  就可以综合,请问怎么回事?

frmngil 发表于 2008-11-18 15:53:41

哦,对了,谢谢大家!

shushi0123 发表于 2008-11-18 10:49:24

posedge rst_n 上升沿有效,进入always里面后rst_n当然是高电平,你怎么又在里面判断rst_n是不是低电平呢?

FPGAer 发表于 2008-11-17 14:44:11

posedge 上升沿有效

negedge 下降沿有效

logics 发表于 2008-11-17 14:40:15

把always 里面的 negedge rst_n去掉:

always @ (posedge sys_clk) 

    if (!rst_n) 

        clk_cnt <= 24'd0; 

    else 

        clk_cnt <= clk_cnt + 1'b1; 

frmngil 发表于 2008-11-17 14:05:08

报错说:

Error (10200): Verilog HDL Conditional Statement error at liangzhu.v(12): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct

hugang0120 发表于 2010-2-21 19:35:46

.....
assign tclk=((clk&!mode)|mode);
assign sclk=((settm&mode)|!mode);

always @(posedge tclk or posedge sclk)
begin
        if(mode==0)
.....
        else
.....                               
        end
end

我写的程序如上,(省略了一部分),错误是一样的,请哥们帮忙看一下,

gwj221 发表于 2010-2-22 08:47:57

楼上的你要干嘛? 难道用双时钟? 牛啊!

hugang0120 发表于 2010-3-3 16:20:17

没用啊,一个是正常的时钟信号,另一个是校时的时钟信号

ngzhang 发表于 2010-3-4 03:56:46

不能双时钟沿触发。硬件实现不了。

vipcff 发表于 2010-3-4 07:58:58

记号

hugang0120 发表于 2010-3-4 09:13:42

回复【9楼】ngzhang 兽哥
-----------------------------------------------------------------------

我看到别人的程序上有用双时钟沿触发的啊,好像没错

McDeggy 发表于 2010-3-4 22:30:24

回复【11楼】hugang0120
-----------------------------------------------------------------------

双时钟沿触发在仿真阶段是可以过,综合的时候出错,因为硬件没法做成这样的,至少目前写成这样没法综合。

hugang0120 发表于 2010-3-5 19:56:51

不会吧? 我看到很多程序这样啊

g280045620 发表于 2010-3-14 20:48:02

mark

AVR_ARM 发表于 2010-3-14 21:19:14

最无耻的是网上下载的Verilog HDL例子大部分是仿真例子。这已经误导人了。

nevermoore 发表于 2010-4-19 11:13:08

posedge rst_n 上升沿有效,进入always里面后rst_n当然是高电平,你怎么又在里面判断rst_n是不是低电平呢?
------------------------
明白了,搞了一上午,这错误。。。强力MARK

caozhu 发表于 2010-4-20 22:33:45

呵呵 也跟着学习了
页: [1]
查看完整版本: 【求教】always @()敏感信号列表的问题【恢复】