马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 vipjph 于 2012-6-29 11:05 编辑
1、verilog中任务和函数的区别?
2、阻塞赋值和非阻塞赋值的区别?
3、测试(test)和验证(verification)的区别?
4、TTL与CMOS电平可以直接相连吗?为什么?
欢迎大家积极回帖讨论,最佳答案者30信元奉上~~~
最佳答案明天揭晓~~
----------------------------------------------答案揭晓---------------------------------------------------
谢谢大家的参与。现将答案整理如下:
1、
比较点 | 任务 | 函数 | 输入输出 | 可以有任意多个输入输出 | 至少一输入,不能有输出和双向端口 | 调用 | 任务只能在过程语句中调用,而不能再连续赋值语句中调用 | 函数可以作为赋值操作的表达式,用于过程赋值和连续赋值语句 | 触发事件控制 | 任务不能出现always语句;可以包含延时控制语句(#),但只能面向仿真,不能综合 | 函数中不能出现always、#,这样的语句,要保证函数执行在零时间内完成 | 调用其他 | 可以调用其他任务和函数 | 只能调用函数,不能调用任务 | 返回值 | 通过输出端口传递返回值 | 通过函数名返回,只有一个返回值 | 其他说明 | 任务调用语句可以作为一条 | 函数调用语句不能单独作为 | 比较点 | 任务 | 函数 | 输入输出 | 可以有任意多个输入输出 | 至少一输入,不能有输出和双向端口 | 调用 | 任务只能在过程语句中调用,而不能再连续赋值语句中调用 | 函数可以作为赋值操作的表达式,用于过程赋值和连续赋值语句 | 触发事件控制 | 任务不能出现always语句;可以包含延时控制语句(#),但只能面向仿真,不能综合 | 函数中不能出现always、#,这样的语句,要保证函数执行在零时间内完成 | 调用其他 | 可以调用其他任务和函数 | 只能调用函数,不能调用任务 | 返回值 | 通过输出端口传递返回值 | 通过函数名返回,只有一个返回值 | 其他说明 | 任务调用语句可以作为一条 | 函数调用语句不能单独作为 |
2、在描述组合逻辑的always块中用阻塞赋值=,则综合成组合逻辑的电路结构。在描述时序逻辑的always块中用非阻塞赋值<=,则综合成时序逻辑的电路结构。 阻塞语句
顾名思义,即本条语句具有影响下一条语句的作用,在同一个进程always中,一条阻塞赋值语句的执行是立刻影响着下条语句的执行情况和结果。如果该条语句没有执行完,那么下条语句不可能进入执行状态的,因此,从字面层上理解,该条语句阻塞了下面语句的执行。
非阻塞语句
当前语句的执行不会阻塞下一语句的执行
详见http://bbs.eetop.cn/viewthread.php?tid=338913&extra=
3、
验证(verification)是是指设计者通过各种方法来比较设计完成的电路模块(RTL代码或网表)和设计文档实际规定的功能是否一致。测试(test)是对流片后的芯片进行正确性检测,验证的主要目标是工艺中出现的物理缺陷等。
4、
不可互连: CMOS输出到TTL可直连(出于驱动能力和耐用性方面的考虑通常也加上拉电阻); 理论上TTL输出高电平低于CMOS最低高电平时需要加上拉电阻,但是近年来CMOS工艺提升产生了低电平CMOS,使得在某些情况下理论上可以直连。 这里仅仅作为答题陈述,实际上TTL是电流控制器件,CMOS是电压控制器件,实际使用总是要加入转换器件(至少是电阻)。
以上答案均来源于网络及回帖整理,如感觉答案不妥,欢迎批评指正~~ |