Verilog语言:还真的是人格分裂的语言

2016-07-19 09:00:00 来源:EEFOCUS
标签:

 

“人气腹语术师天愿在现场披露了被人偶搭档夺取灵魂的腹语术师将妻子杀害的表演节目。天愿真的陷入了多重人格,命令自己杀害妻子和子的人偶的人格出现了。为了不(让自己)杀害和弟子登川有外遇的妻子,天愿提出委托想要监视,然而第二天早上,和子真的被杀害的事件发生了。天愿坦白很可能是在自己的意识失去的时候杀害的……”(----“真相只有一个”《名侦探柯南》一向是老衲喜欢的动画片)这个是第806回《腹语師的错觉》的介绍。


人有双重人格,或者叫人格分裂,那么语言呢?Verilog语言还真的是人格分裂的语言。前回书已经说到了,不能简单地把wire类型映射为组合逻辑,同时把reg类型映射为时序逻辑。事实上,这两个概念会交叉的。也就是说,wire类型极可能被综合为组合逻辑也可能综合为时序逻辑,reg类型也是这样。


“‘reg’是什么?”最微软的回答是:注册表文件。这个自然没错,但是违背了“到哪座山,唱哪里歌”的原则。一般的“标准”答案是:寄存器型变量。看看‘reg’,不就是‘register’(寄存器)的缩写吗?大多数中文教材中都是这样说的。


下面为了说明白这桩事情,请允许老僧引用IEEE有关Verilog语言里面的原文:
“Assignments to a reg are made by procedural assignments (see 6.2 and 9.2). Since the reg holds a value between assignments, it can be used to model hardware registers. Edge-sensitive (i.e., flip-flops) and level sensitive (i.e., RS and transparent latches) storage elements can be modeled. A reg need not represent a hardware storage element since it can also be used to represent combinatorial logic.”


为了强调,表1里面给出了wire、reg类型和组合逻辑、时序逻辑之间的映射关系。


表1 wire、reg类型和组合逻辑、时序逻辑之间的映射关系

 

wire

reg

组合逻辑

时序逻辑


可见reg是“双面间谍”的工作性质,为了能够“左右逢源”,自然用法要比wire来的复杂。类型wire被综合为时序逻辑一般还真是写错了,不必细表。


1. 电平触发,组合实现
和reg“孟不离焦,焦不离孟”的是关键词always,这个要记清楚。人家wire和assign是夫妻,reg和always是一对,千万不要搞混了,这不是能拉郎配的季节。


“always”的语法结构是:
always @(sensitive_tabel)


其中,sensitive_tabel称作敏感列表,其中包含always内部操作的一个或者多个触发条件。字符“@”发音是“艾特”(at),大伙儿发电子邮件(e-mail)的时候常用,不罗嗦。


正如上面提到的、标准立面的说法可以是边沿敏感和电平敏感两种。对于组合逻辑电路,这个敏感列表里面所有条件均为电平敏感。逻辑上,当敏感列表里面的条件符合的时候,always内部的操作可以进行。但是,很多逻辑上可行的代码,由于没有实际电路的支持,是无法实现的。


在Verilog语言95版本里面,电平触发的敏感列表的写法是
triger1 or triger2 or triger3……


其中,triger1等为触发信号。当触发信号电平变化时,说明敏感列表里面条件符合。如果触发信号是向量,则其中一个比特的信号变化,就认为信号电平有变化。到了Verilog 2001版本,这个写法被更加简化了:“,”和“or”都可以用来分割敏感事件;并且,可以用“*”代表所有输入信号,这可以防止遗漏。例1给出了一些符合语法的always的例子。


【例1】always与敏感列表
always @ (triger1 or triger2 or triger3)    //Version 95 and Version 2001
always @ (triger1 , triger2 , triger3)    //Version 2001
always @ (*)    //Version 2001
具有完全电平敏感列表的always模块,总叫人觉得就是组合逻辑了。再次强调数字电路是并行工作的,注意不要用“执行”这个词,不准确。对应的所有assign以及always带领的快都是并行的,其在代码中前后顺序与输出结果无关。也就是说例2里面的两段代码是等效的。代码中,敏感列表sensitive_table1和sensitive_table2对应操作Operation_A和操作Operation_B。
【例2】always所带操作顺序与输出结果无关

always @(sensitive_table1)

Operation_A

 

always @( sensitive_table2)

Operation_B

always @( sensitive_table2)

    Operation_B

 

always @(sensitive_table1)

Operation_A

理论上,assign后面只有一行,对于这个并行工作的理解不难,不会产生误解。到了always这里,一般其后的代码就有很多行了,一不注意就会出错。

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

作者简介
加菲
加菲

十年一觉,博士毕业后十多年从事无线通讯产品的研发工作。了解W-CDMA、TDS-CDMA和LTE的标准协议、接收机算法以及系统架构和开发。从事过关于W-CDMA的FPGA IP core设计工作,也完成过W-CDMA和TDS-CDMA的接收机理论研究和链路仿真工作。综合上面的工作,最终选择了无线通讯的系统设计和标准设计工作。目前拥有100多个已授权的发明专利,是某通讯行业标准文件的第一作者,亦有专利思想被写入3GPP协议。已出版著作《IP核芯志》。

继续阅读
从电路到verilog | 编程综合运用,不得不从DDS的实例说起

实际上说道上一讲,老衲就可以体面撤退了。该说的都说了,细枝末节嘛,也不适合讲座这种短篇幅的东西来表现。可是老僧舍不得大家啊(实际上是舍不得出场费),所以凑个整两个九讲。话说回来,“九”这个数字一向与武林有关:《九阴真经》、《九阳真经》还有降龙2×9掌……

从电路到verilog | 欲要系统能跑起,仿真验证是真谛

数字逻辑系统的设计实际上包含两个相关又独立的领域:设计与测试。这套书重点是设计,因为老衲对于测试不在行,所谓“藏拙”者也。但是完全不介绍测试也不成:这样设计出来的代码不知道对错了。所以,今晚给大伙儿讲点皮毛。

从电路到Verilog | IP设计可企及,宏和参数只是为了合并同类模块

老衲第一次学习Verilog语言,基本就到前面几讲的程度,顶多加上了解`define宏定义。于是对于能设计IP核的人,那是佩服的五体投地,如黄河泛滥一发不可收拾。直到Verilog 2001出了参数(parameter)和生成块(generate)功能,做IP核就成了人人可以掌握的技能了。对头,下面老僧就和施主们讲这些内容。

从电路到Verilog | 熟读语言要素,不会编程也懂verilog

前面不知道施主们感觉到没有,老僧一直在把大伙儿从电路往Verilog语言上拉。这才是正路,很多人却不晓得,可悲啊。

从电路到Verilog | 数字电路设计:有理论、有电路、有代码“三位一体”

书接上文,前面给大家介绍了时序逻辑电路的基本知识和代码写法。今天的讲座更精彩,讲数字电路设计的三种常用模式,有理论、有电路、有代码“三位一体”。

更多资讯
赛灵思收购深鉴科技,一切为了云+端AI?

对于此次收购,赛灵思的解读是赛灵思从FPGA器件向自适应计算加速平台提供商演变的战略,就是要加速从云到端应用上FPGA 加速技术的部署,经深鉴科技优化的神经网络剪枝技术运行在赛灵思FPGA 器件上,可实现突破性的性能和行业最佳的能效,这是赛灵思新CEO继ACAP三月的发布会后,提升机器学习研发能力,推进战略发展的重大一步。

Xilinx拿下深鉴科技,到底看中了什么?
Xilinx拿下深鉴科技,到底看中了什么?

自适应和智能计算的全球领导企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX))今天宣布已经完成对深鉴科技的收购。深鉴科技是一家总部位于北京的初创企业,拥有业界领先的机器学习能力,专注于神经网络剪枝、深度压缩技术及系统级优化。

基于FPGA实现数字控制技术的程控直流变换器设计

传统变换器采用模拟硬件实现闭环反馈控制,获得稳定的电压和电流输出。模拟控制实时反应系统状态,响应速度较快,然而在测试技术领域和仪器产品中,模拟系统稳定性不能满足实际需要。为了获得高稳定性能,需要添加大量元器件进行环路补偿。

云计算究竟如何革新传统行业?

随着互联网的发展和市场需求推动,云计算技术正在逐渐步入成熟化阶段,其使用范围越来越广,对各行各业带来了巨大的推进作用。很多人好奇云计算究竟是如何革新传统行业的,今天千锋云计算培训老师就来给大家分析一下。

可见性是端点建模的关键指标

目前,业界很多组织正在考虑将IT资源向公有云服务中迁移,如亚马逊、微软、谷歌和其他公有云服务提供商,云计算能够带来更高的资本效率、业务敏捷性和企业可扩展性等前景使得这一举措获得企业的青睐。

Moore8直播课堂