lcytms
发表于 2017-5-28 22:08:33
0933
不是,而是说这段行为你必须写在always的框架里面,always之后的begin块里面,这个EDA才知道这是一段行为语句。
否则他不做行为处理。
If的时候它也可以做其它方式的处理。
还有一个行为框架,就是初始化行为框架,initial,initial语句也是行为。
initial语句我们大多用于非综合,但是也可以用于综合。
凡是写在这两个循环行为体,一个是always,一个是初始化行为体,一个是循环行为体。
凡是写在这个行为体之中的,就是行为。
或者说行为语句,你只能写在行为体里面,写在外面就没有用,它也会报错。
写在行为体里面就是行为语句。
行为语句被驱动的信号,就要声明成reg。
非行为的,除了这个之外的,就是线,就这么简单。
关于阻塞和非阻塞呢,其它的语言嘛,我们看一下书都知道,什么样的情况之下用阻塞,什么样的情况之下用非阻塞?
lcytms
发表于 2017-5-28 22:17:06
0934
一种现代的观点是这样的,我们说过,阻塞是Verilog的团队它带来的一个缺陷,但是现在反转了。
如果你是写综合,你的目的是写成一段可综合的代码,这段代码你要变成网表,要装到FPGA里面去。
这是用于综合目的的。
VHDL没有问题,全部都是非阻塞。
你的Verilog是用于综合目的的,这个时候现代的观点认为,全部写非阻塞。
当然它语法上有限定,像assign语句,它的语法上只能是阻塞,所以说你就不能写非阻塞。
因为语法上嵌套是报错的。
也就是说在行为语句,always语句或者是initial语句里面,不包括数据流,数据流是规定了只能是阻塞,只能是等号,没有变的。
lcytms
发表于 2017-5-28 22:17:43
0935
语法结构就是这样的。
如果你的这段代码适用于写综合目的,是要变成网表,要下载到FPGA里面去的,变成电路的,写行为语句的时候,现代的观点是说,全部写非阻塞。
你要写综合的行为,全部写非阻塞。
一定正确,验证正确,下板也正确。
lcytms
发表于 2017-5-28 22:18:55
0936
如果你是用于非综合目的的,是在电脑上用的,在电脑上做评估、做第三方分析、做验证,这个时候就要分析了。
有的时候需要写阻塞,有的时候需要写非阻塞。
当你需要验证的时候,验证的平台要像真实电路那样做,没有先来后到,同时做,你就必须写非阻塞。
如果做验证的时候,你希望一件事情先发生,一件事情后发生,你就写阻塞。
也就是说这个时候,阻塞和非阻塞区别在什么地方呢?
你准备是写综合还是非综合呢?
综合全部用非阻塞,用于非综合目的的时候呢,跟真实电路同时动作,用非阻塞。
有先来后到,用阻塞。一句话,尽可能地用非阻塞。
当你用行为语句写综合代码的时候,尽可能地用非阻塞。
lcytms
发表于 2017-5-28 22:19:36
0937
一定没有错。
问题是写非综合的时候,就有很多讨论了。
然后呢,我们的工具学习。
这是语言体系,我们重点是Verilog。
VHDL介绍的不多。
我们学了哪些工具?
我们学了Altera的Quartus工具。
Xilinx的ISE可能适当的时候也做了一些介绍。
我们使用了Matlab这个工具。
像跟Quartus对接的Modelsim这些工具,我们都做了一些介绍。
lcytms
发表于 2017-5-28 22:20:06
0938
特别是Quartus这款工具,我们也要简单说一下,这是Altera的工具。
Altera跟Xilinx这是两套码制,所以说这个世界很疯狂,语言里面现在有两种语言,工具也是。
还有很多半导体产商,中国现在也在起步。
所以说肯定会有很多的平台。
lcytms
发表于 2017-5-28 22:20:43
0939
但是呢,有一件事却是固定的,就是正确的东西是收敛的,所以说我们无论看Xilinx也好,Altera也好,最终他们发展的方向都趋近于一致。
说明研究结论是收敛的。
但是风格还是各有不同。
Quartus是Altera的综合开发环境。
ISE是Xilinx的综合开发环境。
业界对这两者也是有区别的。
前面我们讲了Moorby和米德的故事,现在是Altera和Xilinx的故事。
可能这次Intel收购了Altera之后,会对Altera的大学计划以及宣传策略还会稍微有一些影响。
lcytms
发表于 2017-5-28 22:21:23
0940
因为到目前为止,他们团队的变更,对新的市场的对策,现在还没有看见。
这期间会有一些空白。
Quartus这款平台是Altera引以为自豪的,它是2002年进行了一次再版,把一代固定到二代,从它的stratix到stratix II,按照这个序列发展下去,基本上定型了。
Quartus II就没有变化了。
lcytms
发表于 2017-5-28 22:22:02
0941
在这款工具里面,可以用它的编辑器,可以写代码,可以做综合,可以做时序分析,可以做优化。
优化我们介绍的并不多。但它内部有。
可以做时序收敛。一系列。
一个集成的开发环境。
其中对我们设计而言,一个比较关注的是什么呢?
编辑器是比较好用的。
很快11.0之后,Altera有一个策略,因为它有大量的IP核,它有一个OpenCore Plus,Xilinx也有。
吸收了很多可重用的代码。
lcytms
发表于 2017-5-28 22:22:42
0942
这些IP核里面有大量的第三方的知识产权,第三方知识产权要得到保护,就启用了一个OpenCore Plus的一个组织。
我们SDRAM的课程里面介绍过,加入这个组织以后,Altera会把它的代码的原文,用128位的秘钥,AES的秘钥来加密。
这样的话呢就看不到原文,用户你可以使用,但是看不到原文。
并且呢,需要license的许可。
Quartus使用这种方式来保护它的知识产权。
以前上课的时候我们知道,如果用户要使用这个IP的时候呢,有一件重要的事情必须要做,要做验证,要仿真。
页:
1
2
3
[4]
5
6
7
8
9
10
11
12
13