Embedded Udacity:功能硬件验证。什么是实现?

Embedded Udacity:功能硬件验证。什么是实现?,embedded,hardware,verification,Embedded,Hardware,Verification,我刚看完Udacity第一周的功能硬件验证课程。在宣传中,它说,它需要电气工程师和软件工程师的技能。这就是为什么它吸引了我。但我得到的印象是,这只适用于芯片设计师。我错了吗? 它对嵌入式软件开发也有用吗? 例如,我如何在Raspberry Pi和/或Android设备上利用这些信息?有没有可能或者我是在浪费时间上这门课? 如果有人能给我一个见解,我会很高兴的。1)这是一个堆栈溢出问题吗?不确定,我会看看会发生什么 2) 我认为这是浪费时间吗?不,这是免费的,只是看,学点东西 3) 它是否适用于r

我刚看完Udacity第一周的功能硬件验证课程。在宣传中,它说,它需要电气工程师和软件工程师的技能。这就是为什么它吸引了我。但我得到的印象是,这只适用于芯片设计师。我错了吗? 它对嵌入式软件开发也有用吗? 例如,我如何在Raspberry Pi和/或Android设备上利用这些信息?有没有可能或者我是在浪费时间上这门课? 如果有人能给我一个见解,我会很高兴的。

1)这是一个堆栈溢出问题吗?不确定,我会看看会发生什么

2) 我认为这是浪费时间吗?不,这是免费的,只是看,学点东西

3) 它是否适用于raspberry pi或android上的嵌入式系统?可能不是,这取决于您对嵌入式的定义,如果您正在对操作系统或环境进行api/库调用,那么这只是编写应用程序。如果你在挖掘裸露的金属,它会越来越近,但不是很近。现在,如果你在某个地方工作,你可以携手合作,或者正在或将要设计芯片、FPGA、CPLD等,而且该公司愿意进入20世纪90年代或2000年代,并允许软件开发人员在模拟中针对rtl进行开发,从而获得模拟器许可证(非常昂贵,不需要太多的cadence执照来掩盖你的薪水)

在芯片开发阶段(相对于后硅芯片在下一个芯片开始之前销售芯片一段时间),我们使用我认为本课程正在教授的东西构建我们自己的模拟人生,但可能不是因为传统的测试方法与我所说的不完全相同。我们模拟人生的部分或整个芯片,使用“外语界面"或者,不管供应商怎么称呼它,将软件与模拟硬件连接起来。我们使用抽象层来实现这一点,我们编写的针对sim卡的代码中有很大一部分将使用不同的抽象层/垫片与硅芯片运行。这可以让软件在几个月到一年或更长的时间内领先,并且可以在逻辑设计以及硬件/软件接口的设计(中断是一个好主意,我们可以足够快地轮询,使用dma等)

Cadence当然会推动他们的产品和他们的做事方式,尽管他们的产品支持广泛的功能。还有其他工具。我是verilator的粉丝,开源,免费。但它非常特别的是它所支持的verilog,大部分是只可合成的,这对我来说很好,所以取决于verilog你所依赖的作者他们可能没有支持verilator所寻找的东西的习惯。icarus verilog更宽容,但速度非常慢。verilator比cadence慢10倍,icarus比cadence慢。但是免费就是免费的……例如,如果你想看到这一点,你可以在opencores玩很多东西例如,在实际操作中,amber、mpx和altor32就是我玩过的

如果你在这些芯片/电路板公司找到了一份工作,那么熟悉cadence和modelsim等模拟器以及免费工具(verilator、icarus、gtkwave、ghdl等)是很有价值的。能够阅读verlog和/或vhdl(如果你已经是一名程序员,这并不难,唯一的新鲜事是有些代码是真正的“并行的”,对于程序员来说,这并不是什么新鲜事)。如果你能够将软件连接到模拟器上,那么你就是该公司的资产,因为你可以利用模拟硬件促进这一开发,并通过在硅芯片之前发现的缺陷,以你工资的倍数为单位节省公司资金,并将计划缩短数月

最后,能够查看波形并看到代码执行是一种令人上瘾的体验


就像学习裸机或汇编一样,在下一个较低的层次上熟悉硬件只会对程序员有所帮助,即使你的经验是逻辑或处理器,而不是你正在编程的。记住,就像程序员一样,让任意N个程序员完成他们可能会想到的相同任务这里有多达N个不同的解决方案。仅仅因为mips克隆的一个实现具有某些细节并不意味着所有mips或所有处理器的内部外观都与之类似。

非常感谢您的回答,这非常有帮助。我是StackOverflow新手,我很高兴了解哪种平台更适合此类问题。