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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5640|回复: 16

[活动] 每日一题第三弹——基本概念分析

[复制链接]
发表于 2012-6-27 15:04:51 | 显示全部楼层 |阅读模式

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

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

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是电压控制器件,实际使用总是要加入转换器件(至少是电阻)。



以上答案均来源于网络及回帖整理,如感觉答案不妥,欢迎批评指正~~
发表于 2012-6-27 16:25:32 | 显示全部楼层
1.任务:允许消耗时间,没有返回值。
函数:不能消耗时间,在调用的时刻即返回,有返回值。
2. 阻塞:执行此条语句时下面的语句被阻挡,此条赋值结束后继续执行下面的语句。
非阻塞:此条语句不阻挡下一条语句的执行,两条语句同时执行
3.测试:芯片流片回来之后,检测芯片的功能是实现,是否有生产缺陷等.
验证:在流片之前,通过仿真来保证芯片实现specification上规定的功能.
4.不可以:两者高低电压的规范不同,或使CMOS工作不正常

水平有限,水平有限
发表于 2012-6-27 16:58:31 | 显示全部楼层



膜拜一楼,把一楼当标答记下了
发表于 2012-6-27 17:07:41 | 显示全部楼层
补充1:任务可以调用任务和函数,函数不能调用任务
补充2:非阻塞是在初始时间执行rhs,结束时间把rhs赋给lhs
发表于 2012-6-27 17:30:55 | 显示全部楼层
本帖最后由 kokoa 于 2012-6-27 17:32 编辑

1:
Verilog中,函数写在function  endfunction之间,任务写在task endtask之间;
函数只能调用另一个(或多个)函数,而任务可以调用另一个(或多个)任务或(和)函数;
函数至少有一个输入,无输出或双向端口,而任务可以有任意的输入输出;
函数只能返回一个值,而任务不可有返回(任务可通过输出或双向端口交互);
函数不能作为完整语句,只能作为赋值的输入,而任务可作为完整语句;
函数总是从0时刻开始(仿真),而任务可从任意时刻开始;
函数不能包含时序控制声明和事件,而任务可以;
函数不允许由disable中断,而任务可以;
对所有的工具而言,函数可综合,而任务的综合不一定被工具支持。
2:
阻塞赋值在本语句执行完毕后执行下一条语句,而非阻塞赋值不是(或阻塞赋值影响下一条语句,而非阻塞赋值不是);
建模中,阻塞赋值产生组合逻辑,而非阻塞赋值产生时序逻辑;
阻塞赋值是一步过程,等号右边计算然后更新等号左边(无打断赋值描述下),而非阻塞赋值是,时间步(time step)开始时计算右边,时间步结束时更新左边的值;
IEEE Verilog标准下,同一个always块中,阻塞赋值的结果一直持续下去直到赋值结束,而非阻塞赋值不是。
3:
测试一般为系统级,粒度较粗,而验证一般为模块级(通常交付前也做系统级验证),粒度较细;
测试一般在RTL级进行,而验证通常指封装完成后;
4:
不可互连:
CMOS输出到TTL可直连(出于驱动能力和耐用性方面的考虑通常加上拉电阻);
理论上TTL输出高电平低于CMOS最低高电平时需要加上拉电阻,但是近年来CMOS工艺提升产生了低电平CMOS,使的理论上可以直连。
这里仅仅作为答题陈述,实际上TTL是电流控制器件,CMOS是电压控制器件,实际使用总是要加入转换器件(至少是电阻)。
发表于 2012-6-27 17:33:29 | 显示全部楼层
除了这个有疑问外,其他都和一楼一样。

我认为TTL和CMOS能否相连要看情况,如果是CMOS来驱动TTL,我觉得可以,但反过来就不可以。CMOS驱动电压范围在TLL范围之内,并不会对TTL造成损害,但反过来就有过压的危险
发表于 2012-6-27 21:54:02 | 显示全部楼层
观摩学习,学习中
发表于 2012-6-28 09:04:17 | 显示全部楼层
3和4的答案感觉有点迷糊
发表于 2012-6-28 09:13:27 | 显示全部楼层
膜拜一楼啊
发表于 2012-6-28 11:00:59 | 显示全部楼层
一般什么时候会用到函数和任务,做验证吗?
我们这边都很少用到。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-26 04:10 , Processed in 0.024488 second(s), 8 queries , Gzip On, Redis On.

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