Chisel 教程翻译之前言《Digital Design with Chisel》

倩图已献,心神灿烂

 

《Digital Design with Chisel》20201010版本
Second Edition  Martin Schoeberl
 


原书许可证:

https://creativecommons.org/licenses/by-sa/4.0/

Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)

This is a human-readable summary of (and not a substitute for) the licenseDisclaimer.

You are free to:

  • Share — copy and redistribute the material in any medium or format
  • Adapt — remix, transform, and build upon the material
  • for any purpose, even commercially.

 

Foreword
前言

It is an exciting time to be in the world of digital design. 
当思维沉浸在数字设计的世界中时,整个人都很爽。

With the end of Dennard Scaling and the slowing of Moore’s Law, there has perhaps never been a greater need for innovation in the field. 
在Dennard 缩放比例定律的末期,和摩尔定律的减速之际,在数字设计领域中,可能从来都不需要更加显著的革新方法的出现。

Semiconductor companies continue to squeeze out every drop of performance they can, but the cost of these improvements has been rising drastically. 
半导体公司都在继续像挤牙膏似的提高他们的性能,但是这些性能提升的成本的已经越来越大幅的增加。

Chisel reduces this cost by improving productivity. 
Chisel就是通过提高生产率的方式来节省成本。

If designers can build more in less time, while amortizing the cost of verification through reuse, companies can spend less on Non-Recurring Engineering (NRE). 
如果设计师可以在更少的时间里设计更多的产品,同时在重用的过程中分摊验证成本,半导体公司可以花更少的非重复性工程成本。

In addition, both students and individual contributors can innovate more easily on their own.
另外,学生和独立贡献者凭他们自己,可以更容易地做出创新。

Chisel is unlike most languages in that it is embedded in another programming language, Scala. 
Chisel不像其他的语言,因为它是嵌入在另一个编程语言中的,也就是Scala。

Fundamentally, Chisel is a library of classes and functions representing the primitives necessary to express synchronous, digital circuits. 
基本上,Chisel是代表用来表述同步数字电路基元的类和函数的一个Scala库。

A Chisel design is really a Scala program that generates a circuit as it executes. 
一个Chishel设计,确实是一个Scala程序,这个程序运行的时候会产生一个电路。

To many, this may seem counterintuitive: “Why not just make Chisel a stand-alone language like VHDL or SystemVerilog?”
对于大多数人来说,这看上去是违反直觉的:“为什么不把Chisel设计成一门独立的语言呢,就像VHDL或SystemVerilog那样?”

 My answer to this question is as follows: the software world has seen a substantial amount of innovation in design methodology in the past couple of decades.
我本人对这个问题的回答是这样的: 在过去的几十年里,软件世界见证了大量的设计方法学的创新。

Rather than attempting to adapt these techniques to a new hardware language, we can simply use a modern programming language and gain those benefits for free.
我们能够简单地使用一门现代编程语言,并且没有代价地获取这些软件技术的益处,而不是尝试把这些软件技术纳入一个新的硬件语言中。

A longstanding criticism of Chisel is that it is “difficult to learn.” 
对Chisel的一个长期批评是说它“太难学了”。

Much of this perception is due to the prevalence of large, complex designs created by experts to solve their own research or commercial needs. 
这种感觉大多是因为大型的复杂的设计的流行,这些设计是由专家设计的用来解决他们自己的研究或商业的需求。

When learning a popular language like C++,
one does not start by reading the source code of GCC. Rather, there are a plethora of courses, textbooks, and other learning materials that cater toward newcomers. 
当一个人学习一门像C++类似的编程语言时,他并不是通过阅读GCC的源代码来起步的。而是,这里充斥由大量的课程、课本和其他的学习资料来迎合初学者。


In Digital Design with Chisel, Martin has created an important resource for anyone who wishes to learn Chisel.
在《牛逼的Chisel数字设计》一书中,Marting已经为每一位想学习Chisel的学者创建了重要的学习资源。

Martin is an experienced educator, and it shows in the organization of this book. 
Martin是一名非常有经验的教育工作者,而且这种经验体现在了本书的内容组织中。

Starting with installation and primitives, he builds the reader’s understanding like a building, brick-by-brick. 
从安装和基元开始,他构建读者对Chisel的理解,就像一步一个脚印地建造一幢大楼。

The included exercises are the mortar that solidifies understanding, ensuring that each concept sets in the reader’s mind. 
书中包含的练习,像是灰泥,它能够加固对Chisel的理解,并且确保没有给概念都装进了读者的脑袋里。

The book culminates with hardware generators like a roof giving the rest of the structure purpose. 
随着硬件电路的生成,这本书达到了顶点,就像房顶给了建筑物其余结构一个目的和意义。

At the end, the reader is left with the knowledge to build a simple, yet useful design: a RISC processor.
在最后,读者被抛入一个知识的沃野的耕耘中,就是要建造一个简单的,但是依然很有用的设计里:一个RISC处理器。

In Digital Design with Chisel, Martin has laid a strong foundation for productive digital design. What you build with it is up to you.
在《牛逼的Chisel数字设计》一书中,Martin已经为高产数字设计铺设了雄厚的基石,在这个基础上,你将用它来设计出什么来,这完全取决于你。

Jack Koenig
Chisel and FIRRTL Maintainer
Staff Engineer, SiFive

JackKoenig
Chisel 和 FIRRTL维护者
SiFive公司高级工程师

 


Preface
前言

This book is an introduction to digital design with the focus on using the hardware construction language Chisel. 
本书是一个关于数字设计的介绍,主要专注于使用硬件构建语言Chisel。

Chisel brings advances from software engineering, such as object-orientated and functional languages, into digital design.
Chisel把软件工程中的优势带入了数字设计,例如面向对象和函数语言。

This book addresses hardware designers and software engineers. 
本书的受众是硬件设计工程师和软件工程师。

Hardware designers,
with knowledge of Verilog or VHDL, can upgrade their productivity with a modern language for their next ASIC or FPGA design. 
硬件设计师,一般拥有Verilog或VHDL知识背景,可以通过在他们的下一个ASIC或FPGA设计中使用一个现代的语言来升级他们的产量。

Software engineers, with knowledge of
object-oriented and functional programming, can leverage their knowledge to program hardware, for example, FPGA accelerators executing in the cloud.

软件工程师,一般拥有面向对象和函数式编程背景,可以利用他们的知识背景做硬件设计,例如,运行在云上的FPGA加速器。

The approach of this book is to present small to medium-sized typical hardware components to explore digital design with Chisel.
本书的方法是通过展现小型到中型的典型硬件组件来探索用Chisel做数字设计的技术。

Foreword for the Second Edition 
第二版前言

As Chisel allows agile hardware design, so does open access and on-demand printing allow agile textbook publishing. 
正如Chisel允许敏捷的硬件设计, 开发的访问和按需复印也一样允许课本的敏捷出版。

Less than 6 months after the first edition of this book I am able to provide an improved and extended second edition.
在本书地第一版出版不到六个月,我就能够提供一本提升了的并且扩展了的第二版。

Besides minor fixes, the main changes in the second edition are as follows. 
除了一些较小的修正之外,第二版主要的变化如下所示:

The testing section has been extended. The sequential building blocks chapter contains more example circuits. 
关于测试的章节做了扩展。时序电路的那一章包含了更多的示例电路。

A new chapter on input processing explains input synchronization, shows how to design a debouncing circuit, and how to filter a noisy input signal. 
关于输入处理的一章新内容,解释了输入的同步化,展示了怎么设计一个防抖电路,而且怎么样去过滤一个包含噪声的输入信号。

The example
designs chapter has been extended to show different implementations of a FIFO. 
示例设计的一章扩展展示了FIFO的不同实现方案。

The FIFO variations also show how to use type parameters and inheritance in digital design.
FIFO的变异电路也展示了在数字设计中怎么使用类型参数和继承。

Acknowledgements 
鸣谢

I want to thank everyone who has worked on Chisel for creating such a cool hardware construction language. 
我想感谢每一位参与了Chisel的同仁,大家是为了创建一门很酷的硬件构建语言。

Chisel is so joyful to use and therefore worth writing a book about. 
Chisel用起来是如此的让人心旷神怡,因此很值得写一本书来介绍它。

I am thankful to the whole Chisel community, which is so welcoming and friendly and never tired to answer questions on Chisel.
我非常感激整个Chisel社区,它如此的愿意欢迎新会员,如此的友好,并且不知疲倦地回答关于Chisel的问题。

I would also like to thank my students in the last years of an advanced computer architecture course where most of them picked up Chisel for the final project. 
我也很想感谢我的近年来的高级计算机体系结构课程的学生,他们大多数捡起来Chisel作为最后的项目。

Thank you for moving out of your comfort zone and taking up the journey of learning and usinga bleeding-edge hardware description language. 
感谢你走出了自己的舒适区,并且开始了学习和使用一门尖端的硬件描述语言。


Many of your questions have helped to shape this book.
你们的大多数问题都帮助塑造了本书。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值