数字电路的设计环境(转帖)
0赞转帖地址http://blog.sina.com.cn/s/blog_495437290100a3ka.html
从07年三月份开始工作到现在一年多了,在这一年里换个几个地方,总体感觉各个地方的差别不大。我只想说说我对工作的感受,只想让想尽快进入数字IC设计的朋友尽快进入这行,这行的门槛相对较高,比做平常的软件难于上手。但这行做通之后,嵌入式和软件比较容易。
第二个项目则是一个视频的发送卡,主要和外设打交道,这和内部的信号有太大的区别就是延时的不确定性,也让我在此费了好多时间。
第三个则是做的基于AMBA总线的验证平台。
在这期间也画了一段时间的pcb,我对此认为还算没有浪费太多时间,因为这样也了解了一些外部的信号的特性,掌握了芯片的接口设计的一些要求。这算是这段时间的意义吧。
1、命令行工具,常用的命令行工具,无论是Linux还是Windows下的,像
常用的ls(dir),mv(move),cp(copy)mkdir(md/mkdir),rm(remove),(del)grep
2、
3、FPGA验证方面我只推荐Altera和Xilinx的,至于Lattic这类不推荐,Altera的软件是Quartus现在最新的版本是8.0,而Xilinx是10.0,这些软件一般可以在官方下载,这些软件如果觉得没必要那么新,主要是对器件的支持,就下低一点的版本,因为这些软件越来越大。最新版本一般装完超过5G。
4、仿真的工具,请不要用Quartus或Xilinx的仿真工具,这些只能说做简单的逻辑而已。仿真的工具主要有modelsim,ncsim(ldv,IUS),VCS,分别是Mentor,Candence,Synopsys,vcs我没有用过,modelsim和ncsim我一直在用,先说modelsim,官方提供学生版,免费的,至于功能少了什么我不知道,只知道有这个版本,而SE版,可以注册后下到,试用期为1个月,至于破解的问题,网上就很多了。相对来说modelsim较容易下载到,而LDV(IUS为Linux环境的,在装了cygwin后Linux下的软件就可以装在cygwin下了)在网上不好找,破解也不好找,VCS没用过,也没去找。所以建议用modelsim了。还得说的是不推荐用图形界面使用这些工具。
5、调试工具debussy,上面的仿真工具都带有调试及看波形的工具,但不推荐,推荐使用debussy。
6、代码检查工具nlint,和debussy同出novas这家公司,你的代码也许在前仿真时没有任何问题,但拿到综合工具去综合却综合不了,原因就是你的代码是不可综合的,所以设计之前要弄代码对应放入结构,那样你就很清楚那些可以综合那些不可以,建议是代码写完用调试工具检查基本语法,在仿真前用nlint做代码检查,一般你的代码符合code style的标准,nlint一般也可以通过,不过值得提的是里面的rule太多,有些并不适合,所以需要自己确定那些需要报error,那些需要报warning。这两个工具相对较容易下到,破解也比较容易。
7、综合工具,FPGA综合的可以用FPGA自己带的,也可以用Synplicity的synplify,而芯片的综合用synopsys的DC。一般对于初步设计这两个工具可以不用。
8、编辑器,也许有人开始在笑了,写代码什么编辑器不能用啊,没错,记事本,不也是编辑器吗?那么我需要的是一种快速的编辑器而且能够高亮显示语法。记事本可以做到吗?推荐使用gvim,一个开源的软件,你可以随意改动,无论是Linux还是Windows下都有相应的版本。既然开源,就容易找到了。对于gvim有很多教程。如果操作熟练的话手不用离开主键盘区就可以完成所有的操作。还有一个编辑器ultraedit,不推荐使用。
再说一说软件安装的一些问题,对于modelsim和ncsim最好不要安装在带空格的文件路径下,对于一般的设计没什么问题,有时也玩玩别人写的cpu,有些开源的cpu的编译有问题。还有就是常用的命令,只要将其目录添加到环境变量path中,在命令行下就可以使用了,这样就非常方便了。像cygwin下的bin目录,ldv和modelsim下的bin目录。还有key文件环境变量是LM_LINCENSE_FILE
接下来说说设计相关的,首先在开始时我犯了硬件设计的一个大忌,用设计软件的思想去设计硬件,很快就更改了。同时希望设计时要先了解的是硬件的结构,如果对结构不清晰,那么写出来的代码很差,而且容易出错,同时要说明的是时序是设计出来的,而不是凑出来的。设计的经验是不断积累的,积累的就是你如何去快速地验证你的设计没有问题。
迄今,我现在没有涉足的是cpu,只希望现在的项目开始去了解这一块,我也希望在学校有时间的并想在这一块发展的人好好去看看cpu,开源的cpu现在已经不少了,功能做的比较强大的是gailser做的leon3,在其官网http://www.gaisler.com/cms/可以下载到,其总线为AMBA总线,这是ARM公司的协议,也是ARM商业cpu采用的总线,leon3,我希望在学校能够玩玩cpu,这样的cpu不仅有源码,也可以运行软件,还可以配置不同的外设,各种ram,usb,vga,uart,这些都有,还有一个fpga免费的cpu是NIOS II,Aletra公司的,但这个没有源码,不适合学习做逻辑设计。还有简单的cpu更适合学习。可以在http://www.opencore.org上找到。
推荐的书有夏宇闻的verilog教程,但只是初步用这个教程,接下来看英文的是卡内基梅陇大学的几本书,有综合的,有验证的,都可以在http://www.eetop.cn/blog/找到,这上面的资料、书籍比较多。这些书籍都太长,不建议全看,大致翻,具体要用那就看那。
常用的网站有http://www.opencore.org上面有大量的开源代码。有的提供打包下载,所有的可以通过cvs这个工具下载,只不过比较慢。
http://www.freemodelfoundry.com/这个网站主要提供的是存储器的的仿真model,同时要说明的是常见的仿真model一般可以到官方下载到。
常见的EDA论坛
附测试环境文件:
test.v文件内容
`define
`define
`timescale
module sim;
initial
begin
end
//=================================
//
//=================================
reg
initial
always #(`cy/2) SYSCLK = ~SYSCLK;
reg
initial
begin
end
//=================================
//
//=================================
task
begin
end
endtask
endmodule
simfiles.f(文件里面放的是文件的路径)
test.v
makefile内容
DEBUSSY=D:/EDA/Novas/Debussy
NLINT=D:/EDA/Novas/nLint2.2v24
all:
ncsim:
mod:
modelsim: