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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] Veriloga

[复制链接]
发表于 2017-1-3 19:02:27 | 显示全部楼层 |阅读模式

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

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

x
Veriloga中的事件触发语句@(V(ctrl)-1.7,+1)默认情况下只执行一次,怎么让它在每一个ctrl的上升沿都执行下面的程序??还请大牛们指教指教。小弟在此谢过了。
 楼主| 发表于 2017-1-3 19:04:44 | 显示全部楼层
自己顶一下
 楼主| 发表于 2017-1-3 19:06:35 | 显示全部楼层
只里是我写的veriloga的代码

// VerilogA for ADV7180_CLAMP, CLAMP_demo, veriloga

`include "constants.vams"
`include "disciplines.vams"

module CLAMP_demo(clamp_ctrl,SIGNAL,DC_OUT,AC_OUT,SEL_HL,LEVEL_H,LEVEL_L);

input SIGNAL,SEL_HL,clamp_ctrl,LEVEL_H,LEVEL_L;
electrical SIGNAL,SEL_HL,clamp_ctrl,LEVEL_H,LEVEL_L;

output DC_OUT,AC_OUT;
electrical DC_OUT,AC_OUT;
real X,Y,Z;

analog begin
   @(initial_step) begin
   Z=0;
   end

   @(cross(V(clamp_ctrl)-1.7,+1))   begin
       if (V(SEL_HL)>1.7)  
            begin
             Y=1*(V(LEVEL_H)-V(SIGNAL));            
             X=V(LEVEL_H);
            end
      else
           begin  
            Y=1*(V(LEVEL_L)-V(SIGNAL));
            X=V(LEVEL_L);
           end
   Z=Z+Y;
   end     
V(AC_OUT)<+V(SIGNAL)+Y;
V(DC_OUT)<+X;

end
endmodule

这是一个箝位电路的程序
 楼主| 发表于 2017-1-3 19:16:01 | 显示全部楼层
回复 1# 当当冒
这里是仿真的波形:
QQ截图20170103190955.png
可以看出@()语句只执行一次
发表于 2017-1-5 14:22:33 | 显示全部楼层
@(cross(V(clamp_ctrl)-1.7,+1))是每个clamp_ctrl的上升沿都执行下面的语句的。没看懂你的仿真结果,没名字。
 楼主| 发表于 2017-1-5 15:41:49 | 显示全部楼层
回复 5# lwjee
谢谢你的回复。我是要把这个模拟的视频信号箝位到某一个固定电平值,分别是1.05和550mV。代码我改了一下,但是仿真仍然有问题。
// VerilogA for ADV7180_CLAMP, CLAMP_demo, veriloga

`include "constants.vams"
`include "disciplines.vams"

module CLAMP_demo(clamp_ctrl,SIGNAL,DC_OUT,AC_OUT,SEL_HL);

input SIGNAL,SEL_HL,clamp_ctrl;
electrical SIGNAL,SEL_HL,clamp_ctrl;

output DC_OUT,AC_OUT;
electrical DC_OUT,AC_OUT;

parameter real LEVEL_H=1.05, LEVEL_L=0.55;
real X,Y,Z;


analog begin
   @(initial_step) begin
     Z=0;
    end
   @(cross(V(clamp_ctrl)-1.5,1))  begin   
       if (V(SEL_HL)>1.5)  
            begin
             Y=0.1*(LEVEL_H-V(SIGNAL));
             X=LEVEL_H;            
            end
      else
           begin  
            Y=0.1*(LEVEL_L-V(SIGNAL));
            X=LEVEL_L;
           end
    Z=Z+Y;

   end   
   
V(DC_OUT)<+X;
V(AC_OUT)<+V(SIGNAL)+Z;

end
endmodule
 楼主| 发表于 2017-1-5 15:47:04 | 显示全部楼层
QQ截图20170105154526.png
这个是仿真的输出波形。
QQ截图20170105154526.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-5 22:02 , Processed in 0.019455 second(s), 8 queries , Gzip On, Redis On.

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