作者zxvc (乐於助人)
看板Electronics
标题Re: 问一个名词的定义
时间Wed Jul 23 18:25:55 2008
先感谢其他网友的意见。
我刚才在google上充电,似乎渐渐有点感觉了。
我还浏览了这些papers:
1. MATLAB/Simulink Based Hardware/Software Co-Simulation for Designing Using
FPGA Conured Soft Processors
2. Methodology for Hardware/Software Co-verification in C/C++
Hardware/Software Co-Simulation/Co-Verification
这些名词其实来自於Embedded System这个领域。
Software在此并不是指software的simulation(例如使用MATLAB作通讯模拟),
而是指在Embedded System开发的程式(Application),例如用C/C++开发程式。
Hardware在此是指执行上述software的硬体部分,例如MicroBlaze、PowerPC。
Co-Simulation指的是用software对所设计出的hardware/software一起进行模拟。
比如说在模拟阶段时,硬体设计的部分可以使用
Instruction set simulator(ISS, 它本身是个软体),软体程式可以用C/C++写。
所以简单的说"Simulation"一个特性就是全部要被模拟的东西都是软体做的。
至於Verification这个词是指「验证正确性」,
并不是指download到硬体板後的执行结果叫做验证。
"simulation"本身只算是个对设计出来的软硬体使用软体进行虚拟的执行,
它并不关心你设计出来的软体体是否正确。
而我们对simlation、configure FPGA、甚至把IC做出来,
然後对它们运算的结果进行「功能是否正确」的检查叫做验证。
请看Wikipedia对Functional verification的解释:
http://en.wikipedia.org/wiki/Functional_verification
其中有一项是:
Logic
simulation simulates the logic before it is built.
所以configure FPGA後的"阶段"一般称之为in-circuit verification而不称作
in-circuit simulation的原因是FPGA是硬体不是软体,
Simulation是用软体在执行的,它算是一种"运算动作"。
严格来讲,使用FPGA"运算的动作"不能称之为验证,
验证指的是检查正确性之类的动作,而"运算"本身与功能正确与否无相关。
IC设计流程习惯在某些阶段讲"运算的动作"比如说
Behavioral simulation、Gate-level simulation,
但却在configure FPGA时候来个in-circuit verification的确会容易造成
一些人误解verification为"FPGA运算的动作"这样的错误观念。
事实上整个IC设计流程,Behavioral simulation、Gate-level simulation
改成Behavioral verification、Gate-level verification也是OK的,
虽然意义上会有变化。
至於我原来的VeriLink问题该怎麽答?
我只能说它不能被叫做Co-simulation。
用HW/SW Co-verification这个名词似乎可行。
比如说我拿VeriLink用在我与同学之前写的一个DDFS(一个可以产生Sin/Cos的东西)。
用Simulink调整DDFS的频率控制FCW
(这可视为一种软体设计,一个个FCW instruction sets送进DDFS processor)。
但DDFS是在FPGA上执行的,所以用"verification"这词对软硬体而言都是OK的。
以上是我的心得。
--
西方三圣:
http://p8.p.pixnet.net/albums/userpics/8/3/553683/1193661731.jpg
《佛说阿弥陀经》
http://web.cc.ncu.edu.tw/~93501025/amtf.doc
《观世音菩萨普门品》
http://web.cc.ncu.edu.tw/~93501025/pmp.doc
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.221.31