仔细算了算,我应该是2个星期之前接手了这个有着高大上名称但是在大牛眼里其实很水的项目的。当然,最初不懂什么叫数模混合仿真,就知道有种超级简单的方法可以写段代码就可以代替繁琐的电路完成计数器的功能,当时还被同实验室同学称为“数模混合工程师”,当时觉得这个称号绝壁的讽刺啊,不过在我成功将一个漂亮的波形仿真出来后,突然觉得这个称号其实也不那么难听,反而在某种程度上给了我极大的自信。 第一个星期,看了一个数模混合的ppt,按照他的方法去一步一步进行,当进行到输入verilog代码进而生成symbol的时候,总觉得怪怪的,后来查了一下网上其他人的做法,有的说可以先自己画出symbol,强行生成的时候会自动弹出一个窗口可以输入verilog代码,但是我和其他人一样,试过了,都不能仿真。最后的错误都归结于一句话:缺少ncvlog的路径。之后我又搞了几天,为了弄明白ncvlog是个什么东西,为什么没他的路径就不行!之后在eetop论坛上各种问,各种找,发现还有个东西叫做IUS,专门compile verilog的,这真是雪中送炭啊,可是问题又来了,IUS和Cadence类似于并行的两个软件,风马牛不相及啊,这就好比我用quartersII烧进FPGA搞出了一个计数器显得很牛逼可是再牛逼与我课题好不相关啊。在快绝望的时候,我终于找到了ncvlog所对应的软件:LDV51。可是问题又来了,下载是需要信元的,对于我这样的初进论坛的渣渣来说,这可是笔不小的数目啊,终于在一咬牙一跺脚之后,下载了全部part,悲催的发现,下载错误。我错下了window版本的,当时恨的牙痒痒啊,既然可以在win下跑起来的仿真程序为毛要戴一顶小红帽呢?亡羊补牢,又花费300信元重新下了一个linux的版本,终于有了一点眉目,和导师汇报完,终于睡了一个好觉。 第二个星期,继续乖乖的装软件,软件装好需要破解,于是我开始了大约2天的破解过程,现在回头看看,和ic5141和mmsim没什么区别,无非是弄好一个license,放在特定目录下,修改环境变量,添加LDV51的部分,尤其是那个令我头疼很久的关键路径。当时也没多想,也没有去试,只是按部就班的设置,设置好后,跑了一跑,果然跑了起来。之后的事情就剩下怎么实现功能的问题了。没有了ncvlog的报错,一切很顺利,直到有一步骤是显示电路的组成部分的时候,总是出现一个“cannot partition the design”的错误,这着实让我头疼了很久很久,不管是查eetop论坛,还是搜百度,都无果。最后再师兄的提醒下,去谷歌hk搜了一下,找到了一篇mixed-signal的教程,如获至宝的感觉!根据他的流程,发现,在我输入verilog代码之后,需要输入:wq再回车,这样可以完成对代码的编译,若编译无错误,可以自动弹出symbol的模型。这样就解决了一切问题,在我的意料之中,最后仿真终于出了波形,但可惜的是,Q只有低电平,而不是一个方波。此时我想到了一个问题:模拟部分输出的电波,输入到数字部分,数字部分怎么就那么聪明知道你来的哪个电压是高电平呢?因此,再回去查了查interface的问题,发现cadence人性化到极致,专门设计了接口的设置,这样我把模拟信号输出3.3V看做高电平输出,0V看做低电平输出,而数字模块对于接受到的3.3V电压会自动认为是接收到高电平,0V是低电平,如此一来,再次仿真出的结果就美的让我心动了!
至此,一个一位的计数器便完成了,以后任重而道远,取得了阶段性的成果,纪念一下。