: 1. 验证有二种, 一种是验你的算法好不好, 另一种是验你的verilog写得对不对
: 算法的部份用C/C++写会相对写verilog好作事, C的免费compiler到处都有,
: 但你要用HDL compile(simulator) 就要在linux, 还要多占一套VCS/NC-verilog
: 的lisence给你用, 你用免钱modelsim @windows 也是很麻烦.
: 再来你要用C产生结果/图档/影片, 就呼叫OpenCV一下子就作出来了. 而且执行时间
: 大约5秒,但是你用HDL一张1080P搞不好要跑一小时才会有结果,一天跑个几次就下班
: 验証verilog的部份, 是因为HDL需要考虑pipeline不是那么容易, 另外你要验証时,
: 不可能你一个一个验, 你如果有一千支test case要测, 当然是用C写个正确性相对高
: 的比对组, 在HDL模拟时用个perl 或C shell 来帮你自动比对, 你就可以去喝下午茶
其实小弟以前还有听说过一个说法,
因为主要做影像IP 都是设计data path居多,
用不同的语言跟不同的人写可以避免球员兼裁判的问题,
不过说真的这应该还是有风险吧~
以前曾经遇过写c code的人不小心参数下错, 两个人算出来结果都是0
结果后来ECO E的很爽 =.=,
所以千万不要相信验证完就没事情这种事情
不过如果写RTL的人只是把 C code当 golden 照翻应该要写错机率还是挺高的
话说阿, 如果你是做Control 类的电路, 应该验证方法就不是使用 c code惹
会有其他的方法让你做验证
: 2. 不叫硬件作, 那就是要叫ARM之类的CPU作, 可是他还要跑OS, 帮你处理所有的周边介
: 面, 处理小图可能还可以, 但1080P60张以上很难来得及的, 所以要有硬件的图形加
: 速器, 就像以前的处理器还要外挂浮点运算器, 现在则是加GPU, 所以大部份的人都
: 是在作, 假设CPU来不及作的, 就作一块硬件专门作你来不及作的,而且可以作很快.
其实如果是死的东西, 一般应该会用ASIC处理吧? 因为ASIC基本上速度快很多,
尤其是那种8K以上的东西应该非得用ASIC了吧.
不然CPU处理速度好像很难跟上那么高速, 不过有些东西好像还是用软件吧?
毕竟ASIC死掉以后可以叫SW 去 Work Around XD
: 3. 这个东西就要看他转出来的品质好不好, 我想最大的问题是假设输出结果都是正确的
: 如果你的硬要在40nm跑到350Mhz你到不了怎么办,或是你转出来的作不到1080P60张,
: 又该怎么办, 所以这个现阶段拿来转小模组或产生一些相对简单的东西, 的确是一个
: 可以加速开发的好工具. 但终究还是要有人去精进你的硬件.
其实我觉得在大公司有个比较重要的就是可维护性, 别说机器转的code,
连人写的code也得有可维护性
以前我很喜欢写技巧性的Code, 主管会把你电个半死, 一开始觉得是别人自己看不懂,
怪我喔, 我面积就是比你小一半怎样, 老子爽
可是其实当你几个月后发现你自己也看不懂你自己的code(不过其实我是觉得还好),
但是写很难的Code主要是以后别人一直来问你这在写什么, 你就会觉得烦死了
然后你就觉得以后还是写的平易近人点好了
就会发现可维护性其实还是挺重要的