为什么RTL的对比模型大多使用C-,而不是perl或是Python?
效率吧?
C仿起来速度快
verilog有调用perl和python的接口吗?
perl和python写定点数模型方便吗?
脚本语言的优势在于字符串等轻量级的处理,但不是那么容易维护。很难想象一个大型的C算法用perl来实现后怎么去维护。
perl做模型?这种脚本语言写出来的程序,谁看得下去?
python和perl的模块化比较差,做复杂性大项目难。而且模型存在的必要性之一就是比rtl运行速度快,perl和python速度比rtl应该快不了多少
python是面向对象的,模块化不会差。perl我不了解,据说是不是一般的难懂
模块化和面向对象是两码事吧
Perl可以编译成可执行文件,运行速度绝对比rtl仿真要快很多
大型程序,perl比c++低一个量级。rtl比c++慢多少?
跑仿真时,rtl就是一种解释型语言,perl也是,慢不了多少的,同一量级。用perl的必要性很低。
仿真的时间就是金钱。
再重复一遍,Perl是可编译执行的
perl的编译成可执行无非是runtime打包了
和c/c++这类native的编译是无法比较性能的
.7
perl的特性就是:你写完,放一周,回头一看:
1.卧槽,这是谁写的
2.卧槽,当初思路是个啥?
那是perl2exe,还有PerlCC这样的——从perl转换成C,然后再编译成可执行文件,据说perl编译“print hello world”比C++编译之后的可执行文件都小
小不等于快
大多数是历史原因,前人写啥你写啥,大多数情况。
Perl的可维护性是相当差,靠它你的Perl会练的不错,绩效反比,哈哈
我用的模型不用脚本语言主要是位操作太麻烦,而且硬件模型一般都没多复杂,用c也不会乱到哪去。 你可以试试脚本语言位操作,说实话,我连汇编都嫌麻烦,还是hdl方便。
你没写过硬件模型吧?
还别说,真有verilog吊python的接口工具,scriptsim,我司就在用,testcase都是用python写的
不用再重复,perl可以打包成成可执行文件,但不代表不是解释执行
verilog到反而可以编译成本地代码直接运行。
就是通过动态链接库啊,你可以理解为SC模型成为了仿真器可以使用的资源
因为编译的正确性有风险。rtl编译执行比解释执行难很多。
编译的正确性难道不是靠编译器保证的?
编译器和运行时也会有bug,特别是rtl这种难度很高的,并且rtl编译器业界用的少也比较新,但是解释器就是久经考验的了。
编译器本身编译出bug,这个我相信可能是会有的
但是,我觉得随着时代的进步,这些bug也都应该是可以解决的
就如同C的编译器一样,也是在进步,之前的bug,可能现在已经修复了
VCS确实bug比较多,但是绝大部分都是因为不好的coding style引起的。
效率,跟simualtor和v sv接口成熟度,方法论成熟度