Verilog程序always里有两个敏感参数,用if区分,编译出错

Verilog程序always里有两个敏感参数,用if区分,编译出错,第1张

其实你的这个程序在modelsim里面仿真是没有问题的,能够实现你想要的功能。

但是在某些编译环境中,要求,当always的敏感变量为两个或以上时,其中一个可以作为时钟,而另外一个必须出现在always中的第一个if的条件中,否则不能综合。在你的程序里,如果always中先对clr信号使用if,之后再在每个情况中判断en是否为高,那么应该就可以通过了。

祝好~

首先你这个always没有写全,最后那个if条件以后的东西没有了,其次那个always其实综合以后是一个d触发器,他有一个时钟和一个复位,如果rs232_rs为0的话,这个触发器就复位了。

always@(敏感事件列表) 用于描述时序逻辑

敏感事件上升沿 posedge,下降沿 negedge,或电平

敏感事件列表中可以包含多个敏感事件,但不可以同时包括电平敏感事件和边沿敏感事件,也不可以同时包括同一个信号的上升沿和下降沿,这两个事件可以合并为一个电平敏感事件。

在新的verilog2001中“,”和“or”都可以用来分割敏感事件了,可以用“*”代表所有输入信号,这可以防止遗漏。

合法的写法:

always@ *

always@ (posedge clk1,negedge clk2)

always@ (a or b)

`timescale 100ns/100ns //定义仿真基本周期为100ns

always #1 clk=~clk //#1代表一个仿真周期即100ns

Verilog HDL

Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7937278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存