原创 我眼中的仿真

2011-1-5 18:19 1480 5 7 分类: FPGA/CPLD

我眼中的仿真


关于仿真这东西给笔者很纠结。在笔者的眼里,笔者把仿真看成是学习Verilog HDL语言之后的功课。网上常有的一套学习方法就是一边学习用Verilog HDL语言建立模块,一边使用modelsim观察输出,这样的学习方法看是很有道理,而且初期也有很大的帮助 ... 笔者在这里说老实话这样的学习方法仅限与前期而已。如果读者反问笔者为什么呀,其中又要扯出很久很久以前的故事 ......


我们知道Verilog HDL 语言又分为两套,综合部分和验证部分。综合部分就是在我们常常用来建模,然而验证部分就如命名它的功能就是用来验证模块。笔者在接触Verilog HDL语言一段时间后,有一种奇怪的感觉一直驱着笔者思考关于“综合语言与验证语言和仿真之间的关系”。


笔者看到很多的激励文本都是使用验证的方式在书写,笔者一直反问自己“难道仿真就是等于验证?”但是根据笔者的记忆,笔者看过那么多有关Verilog HDL的资料,它们都没有说过仿真一定要使用验证语言。正是如此笔者萌生出这样的想法“是否综合语言也可以用于仿真?”。先把这个话题暂停一下,我们先来探讨“什么是仿真?”。


在仿真的世界里,仿真唯一的工作就是建立一个“虚拟的环境”去观察一个建模的输出,同时间也要有“虚拟的输入”以达到激励的效果。既然仿真只是建立虚拟环境来观察输出而已,而且Verilog HDL语言也没有强制性一定要使用验证的方式,那么“是否一套用在综合的方法就也可以用在仿真呢?”


当笔者察觉到上述的问题后,笔者尝试使用建模的方法去完成仿真的工作。在笔者的眼里,仿真工作就如同我们建立模块,然后将模块下载到“虚拟的黑金开发板”上而已。但是这个“虚拟的黑金开发板”比较单调,输入输出只有逻辑和数据而已。仿真的重点就是“如何去建立这个虚拟的环境”,其中激励是关键。(初学者们常常误认激励就是“虚拟的输入”,但是这一点笔者却保留。关于激励的故事,我们往后有机会再谈。)


笔者曾经是初学者过,当笔者一边用综合来建立模块,一边用验证来仿真模块,笔者的头简直就要爆开来。那时候的学习一点也开心不起来,为了应付两种不同性质的Verilog HDL 语言,结果都是两头不到岸,学习以“徘徊边缘”告终。当笔者掌握建模技巧以后,笔者重新接触仿真 ... 咦!笔者发现到,一套用在建模的方法,既然也适合用在仿真上。但是,同时间也伴随着许多问题 ...


其实一直一来,笔者对仿真始终保留自己的一套方法和想法。笔者不是故意要和现有的一套方法唱反调,笔者也不是说验证语言不可以用于仿真。笔者只是希望找到一条更平坦的道路,好让更多初学者或者新手可以轻松上路。

我们知道初学者们接触Verilog HDL语言除了建模这个大问题以外,还有另一个大问题!


它就是“如何区分Verilog HDL语言的可综合和可验证”。如果,一套用在建模的方法也可以用在仿真身上的话,那么初学者只要掌握一种,然后轻松的上路。毕竟验证部分在早期的学习也不常露脸。


嗯,笔者也不多话了,因为上述的内容更多的更多充其量不过是笔者一厢情愿的想法而已,单单用文字来表达,感觉太抽象了,给人一种摸不到的感觉。如果有耐性和笔者一起探讨“笔者心目中的仿真”的话,那么请绷紧神经,全神贯注接聆听,笔者接下来要说的故事。


==================================



文章评论2条评论)

登录后参与讨论

akuei_2_550826815 2011-1-6 12:24

特权的观点,我是很赞同。 但是,有时候代码过于强大,有种很难招架的感觉。更何况,很多语法的使用也不多。无论是初学还是学习过一段时间的同学,来去还是几个固定的格式和语法。 嗯 ... 这只能说是自己的看法吧。因为在我的脑海中,仿真的意思是近似现实去观看模块的反应,而不是去验证模块。 很多时候白菜萝卜各有所爱。 感谢指点,受教了!

ilove314_323192455 2011-1-6 11:47

FPGA本身需要可综合的语言,而仿真则不需要,两者的平台不一样,如果非得统一到一起。那我宁愿是依从功能更强大代码编写更随意的仿真语言,而非可综合的语言
相关推荐阅读
akuei_2_550826815 2011-10-22 18:26
Verilog的私私细语 - 时钟化和信号的长度
目录 第2章 时钟化和信号的长度 2.01 一个时钟一块数据的概念 2.02 信号时钟化 2.03 深入了解模块的沟通 2.04 电平检测模块的整合(即时事件在时序上的不和谐)      实验八:电...
akuei_2_550826815 2011-09-08 12:47
瞎搞Time Quest 和无责任的笔记 第二章
最近整合篇的第二章的构思和灵感都累积不少了,应该是时候开工了。恰好手头上还有一本笔记还没有写完,就是这本瞎搞TimeQuest的第二章。目录笔者也懒得贴了,看过第一章的同学多少也会猜到第二章的内容是什...
akuei_2_550826815 2011-08-29 18:21
瞎搞Time Quest 和无责任的笔记 第一章
哎呀 ... 潜水了都有一段时间了,这是最近研究的成果和目标。 话说TimeQuest这个东西真的很搞怪呀,做得笔者不得不从其他的方向去研究它。 好了还是切入正题,TimeQuest用作静态时序的工具...
akuei_2_550826815 2011-07-06 17:43
Verilog的私私细语 - 整合的概念
目录         02  第1章  整合的概念          1.01  源码上的整合                   实验一:字面上的整合          1.02  时钟和步骤的定...
akuei_2_550826815 2011-06-22 10:18
VerilogHDL那些事儿 - 建模篇v4 + 时序篇v1
VerilogHDL那些事儿 - 建模篇v4 ====== v4 ====== 主要是修改了大量用法上的BUG和极限的精简内容 https://docs.google.com/leaf?id=0B...
akuei_2_550826815 2011-06-10 13:19
Verilog HDL的礼物 - Verilog HDL扫盲文
目录 02第0章 Verilog HDL语言扫盲文 030.01 各种的HDL语言 030.02 HDL语言的层次 03 0.03 RTL级和组合逻辑级 040.04 Verilog HDL语言真的那...
我要评论
2
5
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /2 下一条