zhangchanggong 发表于 2009-11-29 01:43:38

写给刚学CPLD的兄弟

必要条件 如若没这三条件,你不用学了。
一 一本VHDL的书
二 一台能运行Quartus II的电脑
当年我的书是网上下了个PDF书在公司打印机打出来的。书虽然说你可以在电脑上看,但效果是不一样的。

三 一个装有CPLD能下载的电路板
有人说软件仿真,我认为这是一种不负责的说法,你砸锅卖铁也得搞一块!
难道说你学这个只是一种爱好,难道说你只是一个写VHDL的程序员。一台能运转的机器并不只是一个程序,
电路图,PCB图难道说要别人来做?你学的话迟早要接触硬件的,早一天用,你走的弯路就少。
当年我用的电路板不是开发板,反正上面有个CPLD,自己接了几个LED。

必要知识
数字电路基础知识。
如果说你不知道什么叫非门,什么叫上升延,那```先学点数字电路知识。

Quartus II操作
这软件有些深度,真的要研究的话不是一两个月的事。先在网上找个5分钟学会CPLD的视频好好学学,慢慢深入,能通多少要看你造化了。
我刚学时Quartus II窗口下面全是红字,经常一个语法问题要搞上半天,所以你英语好的话,你比别人快一半。不好,先搞个金山快译吧。

VHDL语言
当时我之所以选这个是因为它是大写字母的名字,我比较喜欢,哈。
这个语言个人觉得比较简单,相对于C语言的指针,简单多了。
一 问题:
1 语法
不知道为什么,刚学这语言出错率相当高。
什么标点啊,end if不配对啊 VHDL比较麻烦,所以刚学时一定要把格式写好。
因为前期不太熟,程序写多了就不会有语法错误了。

2 并运行和顺运行语句结合用
这个是重点,多看书,多看实例。

3 多信号源驱动
可以说这不是个错误,但我相信每个学VHDL的人都遇到过。VHDL在处理这个问题上相当头痛。
什么是多信号源驱动,简单点,就是在同一时刻有两个信号要传给另一个信号,问题出来了,Quartus II不知道选取哪个,虽然有个什么决断函数,但没有一定境界是搞不通的。但设计时经常要多信号源驱动,暂时只能控制时序来解决。

4 数值类型
比如bit和std_logi两个都1(高电平),但在程序中不能通用。

5 不同的写法占的资源有太多的不同
所以程序的优化,不过这也是个高深的问题。有一点,程序中间用的数越小越好。

其它的一下实在想不起来了```
二 入门必学程序
1 计数器程序
2 寄存器
3 三态门
4 ROM,RAM
5 状态机
这几个程序能写的话,简单的基本都能搞定了。如搞个频率发生器,电子钟什么的。
Quartus II自带的模块 建议先自己学会写以后实际中再去调用吧,这东东用多了你就不会自己写程序了。

后话
单学CPLD用处不大,我认为CPLD最大的优点是它可以并行运行,至于速度并不是它的最大优点,现在的ARM速度也相当快了!
真的开发一个东东的话,你会发现大多数速度已不是关键了,而是控制。
虽然CPLD可以完成单片机大部分功能,但并不实用,因为CPLD资源不是无限的。在控制和计算方面远没有MCU灵活,所以要两个结合才能完美。

最后 (MCU,C语言)+(CPLD,VHDL)+(PROTEL,模数电路 )+(VC或VB的串口程序上位机小程序)做电子产品开发的必要条件

ngzhang 发表于 2009-11-29 02:30:43

FPGA的话除了内置的一些模拟器件没办法以外能轻松搞定单片机和CPLD的工作。而且还是高性能单片机。

longquan 发表于 2009-11-29 11:24:52

请问LZAltrea打印下来有多少,我正要去打印,CRT的显示器实在是太伤眼泪

zhaojun_xf 发表于 2009-11-29 11:31:39

支持,正准备学习!

McuPlayer 发表于 2009-11-29 11:45:36

楼主有些误导新人了,
1、Xilinx比Altera还稍微newB一些,至少是势均力敌的
2、Verilong对VHDL的优势,也是十分明显的


但推荐的几个练习题目,还具有代表意义,而且比较容易入门

zhangchanggong 发表于 2009-11-29 17:09:31

```````````````````````````````````````````````````````
楼主有些误导新人了,
1、Xilinx比Altera还稍微newB一些,至少是势均力敌的
2、Verilong对VHDL的优势,也是十分明显的


但推荐的几个练习题目,还具有代表意义,而且比较容易入门
````````````````````````````````````````````````````````
verilog,VHDL哪个好。一样的好!既然存在,就说明有它的位置。

   对于入手速度,verilog容易些,主要是由于它的语法形式类c,并且数据类型定义不那么严格(相对于VHDL)。由于语法规范少,所以新手容易学习。
VHDL属于强数据类型语言,对信号、变量赋值,必须对应相同的数据类型,或者调用库中的函数转换数据类型。所以入手时出错相对难,但以后,你就领悟它的精神。1就是1,0就是0,这就是数字电路。
所以建议学VHDL,为什么?因为它是大写字母的名字!要的就是这种精神。呵有点瞎掰了!

jemas963852741 发表于 2009-11-29 18:10:41

精神上支持楼主~~~~~   正在学习大写字母编程语言的飘过~~~~~

ngzhang 发表于 2009-11-29 20:19:26

现实的说。
verilog和xilinx的市场占有率要比其竞争对手高。

astudent 发表于 2009-11-29 20:28:27

写的不错

itelectron 发表于 2009-11-29 20:36:29

顶下手头一一块 DSP+CPLD 的板子!但是 木有空ARM还木有搞定兄弟门先学 偶以后就靠你们指点了

qjy_chess 发表于 2009-11-30 17:52:53

  像我当初学VHDL,只是因为教我的高人用VHDL,习惯了就好,没有什么要争论的。。。有时候只是造化

jackmo 发表于 2009-12-1 15:09:10

mark

ndust 发表于 2009-12-1 15:20:02

jh

footprint 发表于 2009-12-3 11:42:45

讲的还不错,不过Verilog 更好上手

jlqamark 发表于 2009-12-5 09:46:33

Xilinx用的不多,估计与宣传的有关系吧

lichcct 发表于 2009-12-5 23:21:51

哈哈!楼上的人都有理,不过没有明白自己项目要干啥,如果不明白数字信号的流程和处理,学了也是瞎折腾,FPGA说白了就是硬件程序化,就需要数字电路设计知识,没有很深点数字硬件电路知识......学习再多的语言算法都是徒劳无用的,关键是设计思路和对信号处理的知识,例外没有具体的项目就不要花这个力气了,还不如休息实在点......

282206796 发表于 2009-12-6 13:23:21

努力学习数字电路技术

AVRXX2009 发表于 2009-12-9 08:34:43

楼主和15楼的,我到底该从何下手呢?我是大专生,半年前接触过FPGA,现在想继续学这个!

kyozc 发表于 2009-12-9 16:06:37

个人认为Xilinx和Altera只是两个不同的公司名称而已,虽是开发工具不同,精髓还是大同小异的,学好了一个,另外一个也算是半个高手了。倒是VHDL和Verilog一个先入为主后,看另一个特别扭的说~~

hwdpaley 发表于 2009-12-11 09:07:23

mark,知道一点了

myfaith 发表于 2009-12-11 10:14:12

呵呵看来LZ也是新手,很多说法不敢苟同~~

EngKing 发表于 2009-12-11 10:52:16

MARK

zhangchanggong 发表于 2009-12-13 20:57:24

http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_514055.jpg
(原文件名:100_2783.jpg)
我自己打印的VHDL 个人觉得这书入门不错
http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_514056.jpg
(原文件名:100_2784.jpg)
当时玩51时自己做的学习板,现在偶尔还能调试下程序
http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_514057.jpg
(原文件名:100_2785.jpg)
ARM+CPLD 自己改的 那显示屏可不便宜,好几百大洋
http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_514058.jpg
(原文件名:100_2786.jpg)
玩坏的CPU
http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_514059.jpg
(原文件名:100_2787.jpg)
这是我入门时用的书,这书不怎么好
页: [1]
查看完整版本: 写给刚学CPLD的兄弟