关于Verilog的几点感悟

关于Verilog的几点感悟

使用Verilog和VHDL的情况

美国:Verilog: 60%, VHDL: 40%

台湾:Verilog: 50%, VHDL: 50%

虽然Verilog的某些语法与C语言接近,但存在本质上的区别。

Verilog是一种硬件语言,最终是为了产生实际的硬件电路或对硬件电路进行仿真; C语言是一种软件语言,是控制硬件来实现某些功能;

利用Verilog编程时,要时刻记得Verilog是硬件语言,要时刻将Verilog与硬件电路对应起来;

SystemC and SystemVerilog:面向SOC。

五种模型类型

系统级

算法级

RTL级(寄存器传输级)

门级

开关级

时延定义

例1:not #3 N1(QN, Q);

三种延时都为3

例2:nand #(4,5) (Out, In1, In2);

上升时延为4,下降时延为5,转换到x的时延为两者的最小值4 例3:notif1 #(2,8,6) (Dout,Din,Ctrl);

上升时延为2,下降时延为8,截止时延为6,转换到x的时延为三者的最小值2

default语句

default语句建议使用,否则在综合时可能会引入不想要的Latch。

Task

task的语法:input和output可以不加在task的括号里,task只定义名字,input在task内部加,用分号结束定义(或者在task的括号内定义输入输出,用逗号结束定义)。调用没有参数的task时不需要加括号,加括号会报错。

Function

Function有且只有一个输出,但是,可以通过bit拼凑的方法得到“多个”想要的输出。Function可以有多个输入。

Function一般就来描述组合逻辑,用function来实现的组合逻辑,用module同样可以实现,只是描述得稍微麻烦一些,不如function简洁。

Function的名字就是输出,需要在function中进行赋值,输出需要在定义函数名字的时候定义位宽,默认是线。如果要写在always里面,可以定义寄存器。但本质都是组合逻辑。

如果要用fuction实现时序逻辑,不如直接写成module。

Function必须写在module中。

Function中的局部变量如果没有定义并且它所属模块有一个同名变量,则默认是引用function所属模块的变量,不需要在input中添加这个变量而可以直接使用;如果function中重新定义的局部变量跟function所属模块的某个变量重名了,那么默认是function内部的变量,与模块变量无关。

综合(Synthesize)

综合:将系统行为级描述映射到逻辑或电路描述。

综合的实现方法:根据综合算法,利用综合库中的库单元模块,将Verilog描述映射为同样功能的逻辑或电路。

可综合与不可综合:综合库单元以及综合工具可以实现的Verilog语句或风格称为“可综合”,不可实现的称为“不可综合”。

RTL (Register Transfer Level)

寄存器传输级:对系统的结构描述,由时序单元和组合单元,即:Register+Logic组成。

不可综合的Verilog语言

延时

综合库中,没有延时单元。

例: assign #5 A = B;

双沿触发的寄存器

目前的综合库中,没有双沿触发的寄存器,但在将来会加入此种寄存器: 例:always@(posedge clk or negedge clk)不可综合,

而alwyas@(posedge clk1 or negedge clk2)则是可综合的。

always敏感列表中既有沿触发又有电平触发

例: always@(posedge clk or reset)

应为:always@(posedge clk or posedge reset)

Initial 语句

Initial 语句用于testbench文件中,综合针对模块文件,不对testbench文件进行综合

if…else语句

if 后没有else,可能会引入latch。

例:always@(Ena or D)

if(Ena) Q <= D;

当Ena=0时,综合工具会认为Q值需要保持,从而引入了设计者不想要的锁存器。

修改后的代码:

always@(Ena or D)

if(Ena) Q <= D;

else Q<= 0;

case语句

在case语句缺少default的情况下,也可能会引入latch。

例:always@(Sel[1:0] a or b)

case(Sel[1:0])

'b00: q<=a;

'b01: q<=b;

default: q<='b0;

endcase

姑且不论casex和casez的作用(这两个语句的应用一定要小心,要注意是否可综合),case语句和if-else嵌套描述结构就有很大的区别。在verilog语法中,if-else-if-else语句是有优先级的,一般来说第一个if的优先级最高,最后一个else的优先级最低。如果描述一个编码器,在Xilinx的XST综合参数就有一个关于优先级编码器硬件原语的选项Priority Encoder Extraction。而case语句是“平行”结构,所有的case的条件和执行都没有“优先级”。而建立优先级结构(优先级树)会消耗大量的组合逻辑,所以如果能够使用case的地方,尽量用case替换if-else结构。

关于这点的引申有两点:第一,也可以用if…; if…; 的结构描述出不带优先级的“平行”条件判断语句。第二,随着现在综合工具的优化能力越来越强,大多数情况下可以将不必要的优先级树优化掉。

for语句

对for语句,综合工具先要将其展开,再去考虑

例: for(i=1;i<=4;i=i+1) Q [i] = D[i];

完全等价于 Q [1] = D[1];

Q [2] = D[2];

Q [3] = D[3];

Q [4] = D[4];

何时引入寄存器

定义为Reg类型的变量,综合后不一定引入寄存器。 例: always@(Ena or D)

if(Ena) Q <= D;

else Q<= 0;

只有在沿触发的always语句会引入寄存器 例: always@(posedge Clk)

Q<=D;

 

第二篇:人生的几点感悟

人生的几点感悟

一、关于修身修养

★相由心生,改变内在,才能改变面容。一颗阴暗的心托不起一张灿烂的脸。有爱心必有和气;有和气必有愉色;有愉色必有婉容。

★口乃心之门户。口里说出的话,代表心里想的事。心和口是一致的。

★一个境界低的人,讲不出高远的话;一个没有使命感的人,讲不出有责任感的话;一个格局小的人,讲不出大气的话。

★企业跟企业最后的竞争,是企业家胸怀的竞争,境界的竞争。

★看别人不顺眼,是自己的修养不够。

★有恩才有德,有德才有福,这就是古人说的"厚德载物"。

★人的一生就是体道,悟道,最后得道的过程。

★好人——就是没有时间干坏事的人。

★同流才能交流,交流才能交心,交心才能交易。

★同流等于合流,合流等于合心,合心等于交心。

二、关于成功

★要想成功首先要学会"变态"——改变心态、状态、态度等。

★成功之道=思考力×行动力×表达力。

★许多不成功不是因为没有行动前的计划而是缺少计划前的行动。

★功是百世功,利是千秋利,名是万世名。

三、关于团队

★什么是团队,看这两个字就知道,有口才的人对着一群有耳朵的人说话,这就是团队。

四、关于沟通

★沟通必须从正见、正思维、正语、正精进、正念出发,才能取得一致有效的合作。中国人的沟通总是从家里开始的。

★高品质的沟通,应把注意力放在结果上,而不是情绪上,沟通从心开始。

★沟通有3个要素:文字语言、声音语言、肢体语言。文字语言传达信息,声音语言传达感觉,肢体语言传达态度。

★影响沟通效果有3个要素:场合、气氛和情绪。

★沟通的3个特征:行为的主动性,过程的互动性,对象的多样性。

★沟通的5个基本步骤:点头、微笑、倾听、回应、做笔记。

★沟通的5个心:喜悦心、包容心、同理心、赞美心、爱心。

★沟通是情绪的转移,信息的转移,感情的互动。沟通没有对错,只有立场。

★人际沟通,最忌讳的就是一脸死相。要学习《亮剑》中李云龙的笑。笑能改变自己,笑能给人以力量,笑能创造良好气氛,笑能带给他人愉悦,笑是成功的阶梯。

五、关于得失

★放下才能承担,舍弃才能获得。心有多大,舞台就有多大。话说乾隆有一次在朝上放了个屁,台下的和珅脸就红了;乾隆很高兴,大臣们都以为是和珅放的;和珅很会为皇上"分忧解难",深得皇上信任。两百多年后的一天,秘书陪市长和局长参加一个会,在电梯里,市长不小心也放了个屁,为缓解"难堪",市长和局长都看了看秘书,这时,秘书沉不住气了,解释说"不是我放的"。第二天,市长就把秘书给辞了,秘书不解,市长说:你丫的屁大点的事都承担不了,留你何用? ★杀生是为了放生,吃肉是为了给植物放生。

六、关于人才

★用人之长,天下无不用之人,用人之短,天下无可用之人。

★人才不一定有口才,但有口才的人一定是人才。在美国谁会讲话,谁口才好谁就当总统。

★怀才和怀孕是一样的,只要有了,早晚会被看出来。有人怀才不遇,是因为怀得不够大。

七、关于学习成长

★知识是学来的,能力是练出来的,胸怀是修来的。

★不怕念起,就怕觉迟。

★我们要做到花钱三不眨眼:孝敬老人花钱不眨眼;为铁哥们花钱不眨眼;为了学习成长花钱不眨眼。

★*说过精通的目的全在于应用。不是知识就是力量,而是使用知识才是力量。 ★*还说,三天不学习就赶不上刘少奇同志了。

★别人身上的不足,就是自己存在的价值。

★思考力是万力之源,

★一个人心智模式不好的话,就容易知识越多越*。

★一个人成不了大事,是因为朋友太少,朋友质量不高。

★你把经文放进脑子里,那是你给自己开光。

★最好的投资地方,是脖子以上。我们有多少人一生都把钱花在了脖子以下了。

你把《道德经》背下来,老子跟你一辈子。

你把《孙子兵法》背下来,武圣人跟你一辈子。

你把《论语》背下来,孔子曾子跟你一辈子。

你把《心经》、《金刚经》背下来,佛菩萨跟你一辈子。

★一个不懂传统文化的管理者能成为亿万身价的富豪,但永远不会成为真正的企业家。

★多花时间成长自己,少花时间去苛责别人嫉妒别人;

★如果你认为命不好,想改变命运最好的方法就是找个好命的人交朋友。

★08年以后谁不会讲中文就特别没档次了,08年是中文折磨英文的时候到了,奥运会开始,把所有的报幕都改成中文方式。我学外语是为了教外国人学中文,见到老外不要说:对不起,我英文不好,第一句话要说:你好,你会中文吗?

八、关于聪明和愚笨

★最笨的人,就是出色的完成了根本不需要干的事。

★了解别人是精明,了解自己才是智慧。

★一个人心态要是不好的话,就容易聪明反被聪明误。

九、关于孝道

★小孝治家,中孝治企,大孝治国。

★明天道,了人道,开启商道,你的人生才能带来圆融。

★种下一个善念,收获一种良知;种下一种良知,收获一种道德;种下一种道德,收获一种习惯;种下一种习惯,收获一种性格;种下一种性格,收获一种人生。

十、关于营销

★销售不是卖,是帮助顾客买。

员工。

★所有营销在中国可用一个字"儒"来代替:儒{人 + 需};佛{人+ $}。 ★企业只有营销才能实现利润,其他的都是成本,企业最大的成本就是不懂得营销的 ★让顾客连续认同你你就成功了。 ★顾客不仅关心你是谁,他更关心你能给他带来什么好处。 ★顾客不拒绝产品,他也不拒绝服务,他只拒绝平庸。 ★拒绝是一种惯性,当顾客拒绝我们时,我们的工作才刚刚开始"。

十一、关于金钱与财富

★不要活反了,生活本身就是财富。

★财散人聚,人聚财来。

★挣钱只有一个目的:就是花。钱少,自家的,多了,就是大家的,再多了,就是人民的,所以叫人民币。

★老说没有时间空间的人,这些人是最贫穷的人,最傻的人就知道把钱存在银行,银行是把不爱花钱的人的钱拿来,给爱花钱的人去花。

十二、关于茶和酒

★郑板桥说:酒能乱性,所以佛戒之。酒能养性,所以仙家饮之。所以,有酒时学佛,没酒时学仙。

★万丈红尘三杯酒,千秋大业一壶茶。