打印

always语句疑惑求教

[复制链接]
1956|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
magic_yuan|  楼主 | 2013-3-28 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,
   在学VERILOG语言中有如下语句:
always @(state )
              begin
                case(state)
                  S0:
                  begin
                    repeat (3) @(posedge clkb5);//延时                  
                  end

                  S1:
                  begin
                    repeat (3) @(posedge clkb5);//延时
                  end

           end

以上语句中若state触发了SO,则延时三个单位。若state在S0延时的三个时间单位中间又再次触发到S1,请问这样程序是不是关闭由S0引发的延时,从而执行新触发的S1的延时呢?
   十分感谢!

相关帖子

沙发
ifpga| | 2013-3-28 15:28 | 只看该作者
你写得是不可综合的
这种写法最多只能在Test Bench里用

使用特权

评论回复
板凳
magic_yuan|  楼主 | 2013-3-28 15:32 | 只看该作者
ifpga 发表于 2013-3-28 15:28
你写得是不可综合的
这种写法最多只能在Test Bench里用

多谢大侠!
   在modelsim仿真时可以,没有在QUARUS里综合看。延时语句采用何种形式可以综合,或者这里面什么不可综合?刚学VERILOG不久。十分感谢!

使用特权

评论回复
地板
ifpga| | 2013-3-28 16:24 | 只看该作者
repeat 应该是不可综合的
如果延时,可以用计数器

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
bitshiyan + 1 很给力!
5
GoldSunMonkey| | 2013-3-28 18:08 | 只看该作者
ifpga 发表于 2013-3-28 16:24
repeat 应该是不可综合的
如果延时,可以用计数器

回答的太好了

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
bitshiyan + 1 赞一个!
6
GoldSunMonkey| | 2013-3-28 18:08 | 只看该作者
magic_yuan 发表于 2013-3-28 15:32
多谢大侠!
   在modelsim仿真时可以,没有在QUARUS里综合看。延时语句采用何种形式可以综合,或者这里面 ...

很多东西都不能综合的

使用特权

评论回复
7
resxpl| | 2013-3-28 23:46 | 只看该作者
很好玩啊. 我试了一下, 效果很好.
always @(txd) begin
    if(txd) repeat(3) @(posedge clk);
    else repeat(4) @(posedge clk);
    rxd <= txd;
end

这样可以调节占空比. 与其它写法相比, 更简洁一些.

使用特权

评论回复
8
resxpl| | 2013-3-28 23:48 | 只看该作者
我这个程序, 基本原理是:
txd变1时, 3clk后rxd才变1
txd变0时, 4clk后rxd才变0

使用特权

评论回复
9
magic_yuan|  楼主 | 2013-3-29 14:09 | 只看该作者
resxpl 发表于 2013-3-28 23:46
很好玩啊. 我试了一下, 效果很好.
always @(txd) begin
    if(txd) repeat(3) @(posedge clk);

可惜不能综合。。。。

使用特权

评论回复
10
resxpl| | 2013-3-29 20:43 | 只看该作者
是啊. 这种写法在test bench里面倒是可以的.

我测试了一下, 前面一个延时完成前如果第二个延时也在代码中启动, 那实际上第二个延时会被掩盖.

使用特权

评论回复
11
GoldSunMonkey| | 2013-3-29 22:18 | 只看该作者
结帖啊

使用特权

评论回复
12
qin552011373| | 2013-3-29 22:31 | 只看该作者
学习咯

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:发到3000帖时,生活大概完成了一种转折。

359

主题

2770

帖子

7

粉丝