3月29日,名为Gerard Williams III的工程师从苹果辞职。 CNET和全球其他三十几个出版物立即发布了此新闻,不仅是技术新闻,还包括财经新闻。 这位工程师的工作使他的离开引起了股票投机者的兴奋吗? 他在Apple iPhone中设计处理器已有9年,在ARM工作12年之前,在Texas Instruments设计DSP之前,在Intel开发FPGA电路之前。 在所有地方,他都使用Verilog和VHDL硬件描述语言在寄存器传输级别使用了设计技术。
距离俄罗斯更近的例子? 右图:25岁的莫斯科人Ilya Neganov于2011年从Harris&Harris获取了一本书(其最新版本可在
此处或
此处下载),设计了一个简单的处理器,现已在Apple上使用,采用GPU面纱设计,周末乘飞机飞行。 以下是一对来自圣彼得堡的新婚夫妇,他们设计了摄像头,并使用摄像头进行了FPGA图像处理,并在Innovate FPGA竞赛中获得了大奖。 他们在圣塔克拉拉的英特尔总部度过了蜜月。 接下来,来自基辅的同志们,其中两个在Innovate FPGA欧洲总决赛中获得铜牌。 最后,两名5至9年级的学童在面包板上用集成度较小的微电路进行了第一次练习,然后在veril和FPGA上进行了练习。
从学生到第三杰拉德·威廉姆斯的轨迹,这是五个点。 轨迹相当沉重,因为进入数字微电路设计的初始障碍比进入编程的障碍更大。 在这篇文章中,我们将讨论如何为俄罗斯人和其他学生提供便利。

在这两周中,来自RUSNANO,Wave Computing,MIET,IVA Technologies,HSE MIEM,Amperka和DMK-Press出版社的同事举行了以下活动:首先,学生参加了理论在线课程(
从晶体管到微电路 ,
是数字逻辑的一部分)电路” ,
“数字电路的物理端” ),他们熟悉所谓的RTL2GDSII路由-工程师在电子公司中用来设计芯片的一组技术。 然后我们
用FPGA可重构逻辑电路进行
实用的课程 。 例如,他以这种方式在6.111课程中教授MIT,但是我们以一种非常基本的形式尝试了奥林匹克类型的学童。
理论课程很重要,因此不要花时间在寄存器转移级别上讲解设计理论的实践课程上,而只需花三个晚上两个小时的时间来玩FPGA卡,然后您就可以随身携带。 此外,理论课程还将FPGA练习与使用ASIC芯片的批量产品联系起来。
该实践课程将是另一项实验(先前的实验是由下诺夫哥罗德,基辅,阿拉木图,哈萨克斯坦,明斯克,新西伯利亚,托木斯克和伊尔库茨克的不同老师进行的),以弄清楚如何使Verilog和FPGA练习对初学者变得有趣和有用。
用集成度很小的微电路FPGA进行练习值得吗? 对此问题有不同的看法:萨马拉大学(Samara University)院长Ilya Kudryavtsev认为这不值得,最好是在2019年立即提供最新技术,而不是50年前的面包板上的CMOS 4000。 IVA Technologies的神经芯片设计工程师Stanislav Zhelnio认为这是值得的,因为否则学生会认为FPGA是另一种微控制器(例如Arduino),而只是使用一种奇怪的编程语言Verilog。 实际上,一个学生或一个学生应该立即清楚地意识到,该语言文字描述的是方案而不是程序(指令链),并且使用CMOS 4000进行锻炼有助于在大脑中建立正确的图像。
如果您在Verilog上写代码,就好像它是一个程序而不是电路一样,那么该代码将在模拟器上运行,但不会被合成,即使被合成,您也会遇到疯狂的(在时序或大小方面)方案。
因此,一种方法是这样的:在集成度较低的微电路(计数器,移位寄存器,加法器,解码器)上设计电路,然后在Veril上重复该电路,在FPGA中进行合成和寄存器。
有人说:为什么不使用鼠标在屏幕上(示意图输入)为FPGA绘制图表,然后在进行练习之前将其输入到FPGA中呢? 鼠标方法具有三个缺点:
- 它需要学习软件,而不仅仅是将组件粘贴到面包板上需要花费更多的时间。
- 在电路板上没有上拉电阻的情况下,LED烧断或浮动输入带来的经验比原理图输入中的无经验经验更有价值。
- 自1990年代初以来,数字逻辑设计师就从未使用过原理图条目;每个人都在写Veril,有时在VHDL上写。
是的,CMOS 4000和74XX在1970年代已经过时,被PAL,GAL,PLD和集成芯片所取代。 因此,在1970年代,它们被用于儿童保温杯中;在1980年代,它们因不再使用它们的能力而停止支付工资,因而过时了,但此后没有人想出如何更清楚地展示例如D触发功能的方法。作为FPGA / FPGA的前传,它们可以被应用。 麻省理工学院也做同样的
事情 -
参见此处的实验1 。
在FPGA上使用集成度较小的微电路及其等效物进行练习后,您可以使任务复杂化,并在一个FPGA上完成数十个,数百个或数千个集成度较小的微电路的工作,我将在后面讨论。
这是集成度较小的微电路上的组合逻辑(优先级编码器)示例:
以下是此优先级编码器在Verilog硬件描述语言中的外观:
module priority_encoder
(
input [2:0] in,
output reg [1:0] out
);
always @*
begin
casez (in)
3'b1?? : out = 2'd1;
3'b01? : out = 2'd2;
3'b001 : out = 2'd3;
default : out = 2'd0;
endcase
end
endmodule
, , :
:

-:
, SPI, I2C, UART , , , VGA. FPGA :
, .VGA , .

— 7- , , 4x4, ( ), ( ).
-
c , ,
Hacker's Delight.
, , .
schoolMIPS.
-
17-19 . , — RUSNANO USA. , 3000 Sand Hill Road -. - Apple, Google Amazon.
- . , RTL2GDSII, , , , .
