我刚看完Udacity的功能硬件验证课程的第一周。它说,在促销中,它需要电气工程师和软件工程师的技能。这就是为什么它引起了我的兴趣。但我得到的印象是,它只适用于芯片设计师。我错了吗? 它对嵌入式软件开发也有用吗? 例如,如何在Raspberry Pi和/或Android设备上使用此信息?是否有可能或者我在这个课程上浪费时间? 如果有人能给我一个洞察力,我会很高兴。
答案 0 :(得分:2)
1)这是一个堆栈溢出问题吗?不确定,会看到会发生什么。
2)这是浪费时间,我会争辩不,它是免费的,只是观看,学习一些东西
3)它是否适用于覆盆子pi或android?可能不是,取决于您对嵌入式首先关闭的定义,如果您正在对操作系统或环境进行api /库调用,那就是编写应用程序。如果你正在挖掘裸露的金属,它会越来越近,但并不完全。现在,如果你正在一个工作的地方工作,或者正在或将要设计芯片,fpgas,cplds等等。而且,公司是这样的,他们愿意进入1990年代或2000年代,并允许软件开发人员在模拟中开发对抗rtl,访问模拟器许可证(非常昂贵,不需要很多cadence许可证来影响你的工资)。
在芯片开发阶段(相对于后芯片在下一个芯片开始之前销售芯片一段时间)我们使用我认为这门课程教学的各种东西来构建我们自己的模拟器,但也许不是传统的测试方法并不是我所说的。我们模拟部分或整个芯片,使用“外语接口”或供应商称之为的任何东西,将软件与模拟硬件接口。我们使用抽象层来实现它,使得我们针对sim编写的高比例代码将使用不同的抽象层/垫片针对硅运行。这可以在软件上花费几个月到一年甚至更长时间,并且可以发现逻辑设计中的错误以及硬件/软件接口的设计(中断是一个好主意,我们可以足够快地进行轮询,使用dma,等等)。
Cadence当然会推销他们的产品和他们的做事方式,即使他们的产品支持广泛的功能。还有其他工具。我是verilator的粉丝,开源,免费。但是它支持的verilog非常特别,大多数只是可合成的,而且我很好,所以根据你所依赖的verilog作者,他们可能没有那些支持wacy verilator正在寻找的习惯。 icarus verilog更宽容但非常缓慢。 verilator比cadence慢10倍,icarus比那慢。但是免费是免费的......例如,如果你想看到这个,你可以使用opencores中的一些东西,琥珀,mpx和altor32是我玩过的。
如果您登陆这些芯片/板卡公司的工作,那么熟悉cadence和modelsim等模拟器以及免费工具(verilator,icarus,gtkwave,ghdl等)是很有价值的。能够读取verlog和/或vhdl(如果你已经是程序员,这并不难,唯一新的是一些代码是真正的“并行”,今天的多核处理器实际上并不是一个新的程序员的事情)。如果您能够将软件连接到模拟器,那么您就是该公司的资产,因为您可以针对模拟硬件促进此开发,并以您的工资倍数为单位节省公司资金,并在硅片之前发现错误并缩短计划时间好几个月了。
最后,能够查看波形并查看代码执行是一种令人上瘾的体验。
就像学习裸机或组装一样,在下一个较低级别熟悉硬件只能帮助你作为程序员,即使体验是逻辑或处理器不是你编程的那些。请记住,就像程序员一样,任何N个程序员都会接受相同的任务,他们可以在任何地方找到N个不同的解决方案。仅仅因为mips clone的一个实现具有某些细节并不意味着所有mips和所有处理器看起来都像内部那样。