简洁大气的网站推荐,那家公司做网站,淘宝客网站建设,电商前期投资要多少钱简介#xff1a;从20世纪90年代开始#xff0c;利用硬件描述语言和综合技术设计实现复杂数字系统的方法已经在集成电路设计领域得到普及。随着集成电路集成度的不断提高#xff0c;传统硬件描述语言和设计方法的开发效率低下的问题越来越明显。近年来逐渐崭露头角的敏捷化设…
简介从20世纪90年代开始利用硬件描述语言和综合技术设计实现复杂数字系统的方法已经在集成电路设计领域得到普及。随着集成电路集成度的不断提高传统硬件描述语言和设计方法的开发效率低下的问题越来越明显。近年来逐渐崭露头角的敏捷化设计方法将把集成电路设计带入一个新的阶段。与此同时集成电路设计也需要一种适应敏捷化设计方法的新型硬件开发语言。本书从实用性和先进性出发较全面地介绍新型硬件开发语言Chisel和数字系统敏捷化设计方法。全书分两篇。第一篇共10章主要内容包括Chisel语言简介、Chisel的数据类型、Chisel的模块与硬件类型、Chisel常用的硬件原语、如何将Chisel代码转换生成Verilog HDL代码及基本测试方法、Chisel的黑盒、用Chisel实现多时钟域设计、Chisel的函数应用及其他议题等。第二篇共9章介绍编写Chisel需要掌握的Scala语言编程基础知识。读者可以根据自身情况跳过第二篇Scala基础部分直接学习Chisel的硬件开发功能。本书提供配套的课后练习参考答案、仿真程序代码等。本书可作为集成电路科学与工程、电子信息类、计算机类等相关专业的高年级本科生及研究生的教学用书也可供从事集成电路设计的工程人员和EDA专业人员学习、参考。
0.为什么选择本书
进一步学习CPU时我们发现很多资源都是使用chisel语言设计的仅仅使用verilog也许很难支撑我们的进阶学习。因此学习一门更加有利于快速实现的语言是有必要的。本书是市面上唯一一本成体系地讲解Chisel和Scala地书籍具有很强的参考价值。由于笔者自己之前并没有java和scala基础所以这个学习路径势必是比较陡峭的所以我的学习思路可以适应零基础的入门学习路线。从零开始的Chisel从这里开始
1.Scala与Chisel入门概述
本章主要解决的就是一个问题Chisel为什么选择Scala以及我们为什么选择Chisel。对于笔者这样的电子专业的小白来说并没有学习过java使用的编程语言大多数是C和PythonC使用都很少。所以固然也没有听说过Scala。
Why Scala? Scala基于JVMJava虚拟机运行其语法更强大形式更简单代码量更少。 Scala是面向对象的函数式语言C/C、PythonJava都是指令式编程。 Scala是一门可以自由伸缩的语言能够裁剪已有的系统类库也可以扩展自定义库。它的学习曲线并不平滑而是阶梯式的。 Scala由于其强大语法特性成为了一种优秀的“宿主”语言可以便捷地开发出一门新语言。 Scala比Python更简洁抽象程度比C更高。
看到这些特性笔者简直是已经按耐不住一探究竟的狂热心情这么好的语言我之前怎么没学习过
Why Chisel?
verilog诞生的历史悠久它是C语言时代的产物。随着软件各种语言开发效率的巨大进步硬件开发语言显得无法跟上潮流。关于这个问题的讨论并非近年才开始而是早已持续数年。主张改进verilog的一派开发了systemverilog但它仍有很多不足主要应用于验证领域。主张重构新语言的C派开发了systemC但它并没有受到广泛的支持。主张Java的一派直到近年才推出了Chisel它推动了硬件设计的敏捷开发。它可以通过Firrtl编译器转换为Verilog HDL或VHDL它实际上仍然会生成verilog代码借助verilog间接生成电路因此不存在EDA方面的限制。
Chisel为硬件电路设计引入了面向对象特性减少了很多不必要的语法改进了有瑕疵的语法。它生成的verilog都是可综合的消除了一些歧义语法利用模式匹配、特质混入、类继承等特性能够快速改变电路结构。
由于Chisel是建构在Scala之上的因此本书安排了前后两部分内容第一部分介绍Chisel的语法与实战第二部分介绍Scala的语法与实战。由于我们是零基础入门所以需要首先学习Scala的语法。我们从第二部分开始学习。
2.Scala语言编程基础
2.1 Scala的运行
为了更遍历地使用Scala和各种编译链我们最好在Linux环境下进行学习。这里我使用Windows11的Ubuntu子系统进行学习使用虚拟机也可以。关于如何在Windows11上运行Ubuntu子系统可以查阅其他资料在这里不赘述。
环境ARM64 Windows11 MatebookEGo Snapdragon (TM) 8cx Gen 3 3.0 GHz 3.00 GHz Ubuntu22.04 WSL2
官方网站Install | The Scala Programming Language
以我的执行环境为例介绍安装过程
首先需要安装java环境我的ubuntu中没有自带java环境。
sudo apt install default-jdk
之后执行这条指令
curl -fL https://github.com/VirtusLab/coursier-m1/releases/latest/download/cs-aarch64-pc-linux.gz | gzip -d cs chmod x cs ./cs setupsudo apt install default-jdk
这时scala已经被成功安装但我们需要重启Ubuntu对我而言我重启了命令行。之后我们用下面的语句测试
scala -version
如果能正确显示版本号没有WARNNING则说明已经安装完成。这时直接输入scala便可进入scala编译器可以开始执行程序了。
jiaJ-MateBookEGo:~$ scala
Welcome to Scala 3.6.2 (21.0.5, Java OpenJDK 64-Bit Server VM).
Type in expressions for evaluation. Or try :help.
scala 12
val res0: Int 3
如果我们希望使用图形化界面编程可以安装IDEA网上教程很多在这里不多说明了。