原创 基于Verilog HDL的数字系统设计入门教程(CPLD篇)

2009-8-19 13:12 3401 8 13 分类: FPGA/CPLD

    从事电子设计方面的工作已经有一些年头,现在进入高校任职后也是在做一些相关的事情。从过去和现在接触到的很多学生身上,我看到了中国教育方面存在的一些不足之处。现在的学生在学习方面还是说得过去的,但是真正动手方面却非常欠缺。由于自己将教育作为自己的事业而非职业,所以促使我来这么一个事情。



<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    现在已经写了前言部分,以及第一天和第二天的教程,总的来说,万事开头难,写到现在自己感觉水平还不是那么够,特别是在文字的把握上。


    下面是已经写好的和计划写的东西的一个列表,原帖在:


http://www.5ifpga.com/viewthread.php?tid=114






基于Verilog HDL的数字系统设计入门教程

前言及内容提要:
http://www.5ifpga.com/viewthread.php?tid=109
CPLD篇

第一天:http://www.5ifpga.com/viewthread.php?tid=111


主要内容:
    LED的基本工作原理;
    Quartus II的基本使用方法和设计流程;
    利用CPLD进行数字系统设计的流程和方法;
    基于Verilog HDL的设计输入方法。
实验:
    点亮LED

——————————————————————————————————————

第二天:http://www.5ifpga.com/viewthread.php?tid=120


主要内容:
    闪烁灯、流水灯、跑马灯和花样点灯的实现原理的基本原理;
? MAX II CPLD 启蒙板板上有源晶振的使用方法;
? MAX II系列CPLD的片内晶振的使用方法。

实验:
    闪烁灯、跑马灯、流水灯和花样点灯。

——————————————————————————————————————

第三天: http://www.5ifpga.com/viewthread.php?tid=121




主要内容:
?轻触开关(按键)的基本工作原理;
?利用RTL电路图观察器观察电路结构;
?基于原理图方式的Quartus II输入设计方法。

实验:
    与LED搭配的基本输入输出和基本逻辑门实验。

——————————————————————————————————————
第四天:http://www.5ifpga.com/viewthread.php?tid=138

主要内容:
    按键消抖原理及应用;
    拨码开关的基本工作原理;
    基于原理图、源代码和使用MegaWizard定制宏模块进行联合设计输入的Quartus II设计方法;
    学会利用qsf文件来锁定引脚和对项目进行设置。
实验:
    按键消抖实验;
    拨码开关的基本使用实验。


——————————————————————————————————————
第五天:http://www.5ifpga.com/viewthread.php?tid=139


主要内容:
   数码管的基本原理;
?数码管静态和动态显示的原理和实现方法;
?利用bsf文件进行设计的方法;
?利用Tcl脚本进行引脚锁定的方法;
?项目文件的添加和移除。

实验:
    数码管的静态显示、数码管的动态显示。

后续的教程预告:
——————————————————————————————————————
第六天


主要内容:
    MAX II CPLD UFM的使用;
    ModelSim的基本使用方法和仿真流程。
实验:
    利用按键和数码管实现计数器。
——————————————————————————————————————
第七天


主要内容:
    蜂鸣器的基本工作原理;
    ModelSim的基本使用方法和仿真流程。
实验:
    蜂鸣器发音实验;
    数字电子琴实验。

——————————————————————————————————————
第八天

主要内容:
    矩阵按键的基本工作原理和编程方法。
实验:
    矩阵键盘的键位识别;
    由矩阵键盘。

——————————————————————————————————————
第九天

主要内容:
    RS-232串行通信的基本原理;
    RS-232串行通信的Verilog HDL实现方法。
实验:
    串行发送数据实验;
    串行接收数据并通过数码管显示实验。

——————————————————————————————————————
第十天

主要内容:
    通过综合实验,回顾前面9天所讲的硬件和软件方法,实现一个较为复杂的功能;
    充分锻炼实战能力,检验学习效果。
实验:
    实验内容待定。
——————————————————————————————————————
第十一天

主要内容:
    LCD的基本原理(以1602为例);
    LCD显示字符的Verilog HDL实现原理。
实验:
    LCD显示字符实验。
——————————————————————————————————————
第十二天

主要内容:
    PS/2的基本原理;
    PS/2的Verilog HDL实现原理。
实验:
    PS/2键盘按键按下的键识别和显示实验。

——————————————————————————————————————
第十三天

主要内容:
    VGA显示的基本原理;
    8色VGA显示的Verilog HDL实现原理。
实验:
    8色VGA显示彩条和字符实验。
——————————————————————————————————————
第十四天

主要内容:
    数字式温度传感器DS18B20的基本工作原理;
    DS18B20的Verilog HDL实现原理。
实验:
    数字式温度计实验。

——————————————————————————————————————
第十五天

主要内容:
    I2C 协议的基本知识;
    I2C EEPROM(24CXX)基本工作原理;
    基于Verilog HDL的24CXX读写流程分析。
实验:
    24CXX的读写实验。
——————————————————————————————————————
第十六天

主要内容:
    实时时钟芯片DS1302的基本工作原理;
    DS1302的Verilog HDL实现原理。
实验:
    基于DS1302的电子钟实验。

 

    现在,我的网站的浏览量和知名度大不如从前域名www.51fpga.com了,所以到现在也没有太多的反馈给我,我也不知道前面写的到底如何,也不知道是否有人跟着这个教程在学习。


    EDNChina算是一个不错的网站,我就借用这个地方扩大下这个事情的影响力,让更多的人了解这个事情。我想做的不是把代码写的多高深,而是针对初学者,让更多的人了解它,掌握它,以后能在这个方面做出成就。


    看到这里有小组,我也准备建立一个相应的小组,组织大家针对CPLD/FPGA进行学习,让这个技术能有更大的应用群体,让学生朋友们能学到更多的知识。


    此外我也制作了一些硬件配合这个教程,但是由于个人的原因,只能提供PCB,如果我在这里建立小组,能有较多的人报名参加这个活动,我可以联系厂商制作成品供大家学习,费用一定控制得最低。硬件部分的选择可以看这个帖子:
http://www.5ifpga.com/viewthread.php?tid=86


    此外,ENDChina我不是经常看,所以有什么事情尽量到www.5iFPGA.com上去讨论。

文章评论7条评论)

登录后参与讨论

用户397403 2011-1-26 16:25

Good

用户1034847 2009-8-6 15:59

有些观点是非常同意的,不过有些事情碍于体制是没有办法做的。所以只能在这里写个教程…… 这个教程是基础篇,结束之后倒是有你说的那个以一个设计为主线的这么一个想法

tengjingshu_112148725 2009-8-6 09:56

书写地不落入俗套难,写成经典难,其实大家都没办法啊,你说大学能按兴趣学吗?难。你说能找份感兴趣的工作吗?难。

tengjingshu_112148725 2009-8-6 09:40

我之所以讲这么多,是因为我是一个刚从学习出来的人,有感于现在从课堂上已经很少学到东西了,而市面上的书基本都是左抄抄又抄抄的书,很多又是基础的书,而不朽的书一本也没有。你说的对于教育来说,基础入门,当然没错,但你想想,国外的书有些不都是大学用书吗?国外的书之所以能成为经典,是因为是从基础出发的,而无论什么时候,都能用到。我有个大胆的想法,其实将Verilog何不以设计一个8bit的简单CPU为主线贯穿全书呢?最后结课以一个能通过验证的CPU为大作业,而取消考试(当然要严格把关,杜绝抄袭)。FPGA这样的实验课考试是很愚蠢的,当然我也知道现在作为老师有很多现实困难。我觉得应该多参考国外的课程的设计。至于书的书写的语言我觉得可以参考“电脑圈圈”的USB那本书,确实说得挺有意思的。还有一些网上的书,当然我也不可以想象如果从一个老师的嘴里讲出来的效果。

tengjingshu_112148725 2009-8-6 09:24

我只是从我个人角度讲的,我也只是刚刚从学校毕业。我是觉得即使是初学者的课,也没必要把上课的大部分时间放在重复讲述基础内容上,在课堂上还是以实验为主,非实验课上注重基本概念的讲解。多讲讲如何查找ALTER的资料,如何通过搜索查找资料。授人以鱼,不如搜人以渔。现在想想以前的老师,能让人记住的,或上课的东西有用的,都是一些从在课上“插科打诨”的老师,反而在课上照本宣科的老师,课上学到的反而少。博主不要生气,说句不中听的话,现在大学的老师,基本都是从学校到学校的产物,都不是从工程师的角度思考问题的,很多知识都局限在这门课上,甚至课上讲授的ppt上。其实在课上多讲讲项目经验,比将基础学的多,试问座下的学生真有几个以后从事工程师的职业?真正有兴趣的又有几个?真有兴趣的人自己会上网找资料买开发板学的,而你的开发经验会成为他们一生都受益的宝贵财富。

用户1034847 2009-8-5 23:04

to:python_ky 我前面也提到了,我这次并不是以写一本书的目的来做这个事情,所以结构上比较松散。 此外,我现在从事教育工作,所以想从初学者入门难的这个出发点来写这个东西。 当然,我也希望是以一个实际的项目的方式来组织一个教程,但是那样必须要针对有一定基础的人来做。这个也是我后面想要做的事情,现在的情况,还是以基础为主,先把大家引进门再说。 此外,周立功的一些思想(抛开商业思想),对于教育本身来说还是有意的,只不过鉴于其本来不是做这个方面的,水平缺失是必然的,我也是从他着眼于这个教育行业的提升的角度比较认同。 代码规范我最近也在研究,我本身这个方面也需要提高。 当然,也非常希望您们能参与到这个事情中来,为更多的朋友造福。

用户1034847 2009-8-5 10:08

我也考虑过您所说的问题,这次我要写的只是一个教程,而不是书。 此外,我基本把市面上关于FPGA/CPLD,Verilog这个方面的书都买了,也基本都看了,总结出来一个问题。要吗书写的偏重语法讲解,要吗就是偏重实际应用。实际应用方面周立功的还算是不错的,但是人觉得不是太适合。 所以才产生写这么一个教程的想法,因为个人能力的原因,第一步是把应用写完,然后再根据应用把语法和编程思想加进去,成为一个理论和实际结合的教程。让看这个教程的同学不仅仅是跟着做,而是跟着学和动手。

tengjingshu_112148725 2009-8-5 09:37

我觉得,如果书这么写,难免会落入俗套,写出来的话,同市面上的书也差不多了。很多时候我觉得应该打破常规,书也应该打破常规地写,这样才能吸引读者。暂时想到这些。我是觉得虽然你列的书面涵盖了FPGA初学者应该掌握的技能,可是现在这样的书难道不是太多了吗?
相关推荐阅读
用户1034847 2009-09-10 08:52
基于Verilog HDL的数字系统设计入门教程(CPLD篇)——第六天
目录1.        简介        42.        实验环境        43.        蜂鸣器原理        43.1        蜂鸣器基础知识        43.2...
用户1034847 2009-08-31 10:46
关于Nios II中Verify failed错误的解决方法
Verifying 000xxxxx ( 0%)Verify failed between address 0xxxxxx and 0xxxxxxLeaving target processor pa...
用户1034847 2009-08-31 01:19
后续教程推出时间可能要稍微慢一点
因为今天才刚刚到支教的地方,各种事情还没有完全办妥。等一切安顿好,晚上的时间都会安排作为教程撰写的时间。希望在9月份能把这个教程全部写好。...
用户1034847 2009-08-21 13:48
Found pins functioning as undefined clocks...警告消除
关于Found pins functioning as undefined clocks and/or memory enable警告的消除编译项目的时候会出现这么一个警告:警告含义是CLK没有定义成...
用户1034847 2009-08-20 01:18
教程还需要再坚持
    由于前两日熬了一个通宵写一份教程,搞得这两天精神一直有些恍惚。自己不时问自己,自己做这个事情,是否有意义,是否应该?    身边的人,大多数的眼光都是往钱看,对于我这种行为基本不持肯定态度。我...
我要评论
7
8
关闭 站长推荐上一条 /3 下一条