快速入门数字芯片设计,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老师的《数字设计和计算机体系结构》。



目录
相关文章
|
安全 虚拟化 异构计算
GPU安全容器面临的问题和挑战
本次分享由阿里云智能集团弹性计算高级技术专家李亮主讲,聚焦GPU安全容器面临的问题与挑战。内容分为五个部分:首先介绍GPU安全容器的背景及其优势;其次从安全、成本和性能三个维度探讨实践中遇到的问题及应对方案;最后分享GPU安全容器带状态迁移的技术路径与应用场景。在安全方面,重点解决GPU MMIO攻击问题;在成本上,优化虚拟化引入的内存开销;在性能上,提升P2P通信和GPU Direct的效率。带状态迁移则探讨了CRIU、Hibernate及VM迁移等技术的应用前景。
|
芯片 SoC
深入理解AMBA总线(零)绪论
深入理解AMBA总线(零)绪论
856 0
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
106028 10
|
存储 芯片 异构计算
快速入门数字芯片设计,UCSD ECE111(三)System Verilog时序逻辑(上)
快速入门数字芯片设计,UCSD ECE111(三)System Verilog时序逻辑
331 0
|
编译器 芯片
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog(下)
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog(下)
298 0
|
存储 安全 编译器
快速入门数字芯片设计,UCSD ECE111(五)Project1&2(二)
快速入门数字芯片设计,UCSD ECE111(五)Project1&2(二)
210 0
|
算法 编译器 芯片
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog(上)
快速入门数字芯片设计,UCSD ECE111(二)SystemVerilog
251 0
|
Shell 开发工具 芯片
快速入门数字芯片设计,UCSD ECE111(一)Introduction(上)
快速入门数字芯片设计,UCSD ECE111(一)Introduction
356 0
|
架构师 芯片 SoC
SoC系统的低功耗设计(一)绪论
SoC系统的低功耗设计(一)绪论
883 0
|
SoC
深入理解AMBA总线(二)APB slave设计
深入理解AMBA总线(二)APB slave设计
927 0

热门文章

最新文章