快速入门数字芯片设计,UCSD ECE111(一)Introduction(下)

简介: 快速入门数字芯片设计,UCSD ECE111(一)Introduction(下)

理解SV语言既是一种“综合”语言又是一种“仿真”语言是非常重要的。所谓的综合即从代码映射到真实的逻辑电路,能够综合的语法只占SV的一小部分,这也是我们要重点掌握的。除此之外SV主要用于验证,这一部分涉及的语法较多,不在本课程讨论的重点。对于没学过Verilog或SV的同学来说,刚刚学习该语言的时候,可能会觉得很像C语言,但大家要理解,Verilog/SV是一门硬件描述语言(暂时不考虑验证),也就是对实际的电路进行描述。与传统的软件语言的设计思维完全不同。所以大家在学习这门课的时候,要有意识的“think in hardware"。接下来的文章我也会强调这点。

module是Verilog/SV中最基本的单元,也就是俗称的模块。模块可大可小,小到一个门电路,大到一个SoC,都可以是一个Module。需要注意的是,在绝大多数情况下,一个.v/sv文件通常只包含一个Module。上图的Module描述了一个逻辑电路。输入为a,b,c三根线,输出为y这根线。上述的逻辑运算定义了y和a,b,c之间的关系。

经过综合,该代码会变成如图所示的门电路(大家在做设计的时候,写RTL代码实际上就是去描述这样的逻辑电路)。

上图为一些语法相关的注意事项,比如该语言是区分大小写的、不能以数字开头、空白会被忽略以及如何写注释。

然后讲解了一下结构层次的概念。可以看到,在nand3这个模块中,调用了and3和inv这两个模块(也就是一个模块中可以包含子模块),这一点很好理解(一个大模块由若干个小模块组成)。需要注意的是,在nand3这个模块中需要定义n1这个内部变量,用来连接and3和inv两个模块。读者朋友有兴趣可以动手画一下,实际上就是一个与逻辑跟了一个反相器。

然后讲解了一下按位操作符。单个的& | ^等信号代表各个比特之间互相运算。比如a&b就是a[0]与b[0],a[1]与b[1]相与。输出的比特与输入的比特一致(在使用该运算符,应该保证两个变量之间比特长度相等,否则可能会有意想不到的错误)。该逻辑综合的电路如图所示,非常直观。

然后讲解了一下规约运算符,该运算符等价于各个比特之间做运算,直接看图即可。

然后讲解了一下三目条件运算符,三目运算符和C语言中的三目运算符基本类似。满足则选择前者。综合成实际电路的话是一个MUX逻辑(选择器)。

最后讲解了一下运算优先级,说实话,本人也不记得这么多。建议大家多用括号,来确保逻辑与自己的预期相一致。

上面的内容就是第一节课的Slides。大家学习的时候最好手上备一本数电书,再次推荐Harris老师的《数字设计和计算机体系结构》。



目录
相关文章
|
芯片
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog(二)
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog(二)
89 0
|
编译器 芯片
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog(下)
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog(下)
99 0
|
算法 编译器 C语言
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog(一)
快速入门数字芯片设计,UCSD ECE111(八)更深入了解SystemVerilog
105 0
|
存储 安全 编译器
快速入门数字芯片设计,UCSD ECE111(五)Project1&2(二)
快速入门数字芯片设计,UCSD ECE111(五)Project1&2(二)
80 0
|
算法 芯片
快速入门数字芯片设计,UCSD ECE111(十二)Testbench和VHDL(一)
快速入门数字芯片设计,UCSD ECE111(十二)Testbench和VHDL
118 0
|
算法 芯片
快速入门数字芯片设计,UCSD ECE111(十二)Testbench和VHDL(三)
快速入门数字芯片设计,UCSD ECE111(十二)Testbench和VHDL(三)
88 0
|
存储 芯片 异构计算
快速入门数字芯片设计,UCSD ECE111(三)System Verilog时序逻辑(上)
快速入门数字芯片设计,UCSD ECE111(三)System Verilog时序逻辑
103 0
|
存储 芯片
快速入门数字芯片设计,UCSD ECE111(三)System Verilog时序逻辑(下)
快速入门数字芯片设计,UCSD ECE111(三)System Verilog时序逻辑(下)
97 0
|
机器学习/深度学习 调度 芯片
快速入门数字芯片设计,UCSD ECE111(九)FPGA vs ASIC(一)
快速入门数字芯片设计,UCSD ECE111(九)FPGA vs ASIC
100 0
|
存储 算法 编译器
快速入门数字芯片设计,UCSD ECE111(四)深入理解状态机(上)
快速入门数字芯片设计,UCSD ECE111(四)深入理解状态机
108 0
快速入门数字芯片设计,UCSD ECE111(四)深入理解状态机(上)