《匠人手记》推荐网上购书渠道:
互动出版网(china-pub)购书入口   >>>
当当网(dangdang)购书入口   >>>
卓越亚马逊网 购书入口   >>>
淘宝网(taobao)购书入口   >>>
更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历
载入中...

百宝专栏

载入中...
最新货色

载入中...

粉丝评论

载入中...

载入中...



百宝信息

载入中...

百宝流量

(2006-07-01开始)


匠人手记

 匠人观点: 好记性不如烂笔头  
 黑色幽默:三鹿门——后世畅想

Verilog-HDL学习1(转)
程序匠人 发表于 2006-8-10 12:36:00  阅读全文 | 回复(0) | 引用通告 | 编辑

第一讲 Verilog-HDL 与CPLD/FPGA设计
 
1.1从模拟世界到数字世界
      在二十世纪70年代初期,家用电子产品莫过于晶体管收音机、电唱机、扩音器了,当时的元件市场晶体管分立器件是最先进的产品,可以说是 “一片模拟世界”。到1975年以后,中小规模集成电路逐步上市,之后的几年,在大学里也开始讲授集成电路的课程。
     1979年以后,***的荧光显示式计算器开始在中国市场出现。1983年前后,微处理器的学习形成高潮。1986年,在数字技术的进步与微处理器技术的影响下,笔者开始动手制作Z80单片机。在不用任何调试设备的情况下,自己编写机器代码,组装编程器,...... 直到制作出第一台最简单的单板机。第一次感受数字技术和微处理器,使笔者兴奋不已。
      近几年来,随着IT业的高速发展,整个电子世界都朝着数字化、小型化、多功能化、低耗电的方向发展,学习数字电路的条件与过去相比也发生了巨大的变化。
1.2 数字电路的不同设计过程
      随着大规模IC的出现和成本的急剧降低,随着软件技术及各方面技术的进步,数字电路的设计方法与过程发生了巨大的变化,用传统的思维方式和设计方法已经不能适应时代的需要。作为数字电路设计工程师,仅有过去的传统设计方法无法适应时代的需要。要跟上时代的需要,就必须学会使用硬件描述语言HDL(Hardware DescriptionLanguage)。HDL 可以描述数字电路或系统,还可以通过仿真等手段来验证设计的正确性。利用仿真的手段,可以大大减小设计失败的概率,缩短研发周期。
      图1 给出了数字电路或系统的不同设计过程。图1(a)是传统的设计过程,在这种过程中采用分立的功能逻辑电路,设计过程大致可分为4个步骤。在这种设计过程中,进行功能设计后,便用分立元件搭建电路。这种情况下,由于是靠经验和许多主观因素的影响,很难保证电路的正确性。当系统较为复杂时,需要在搭建电路之前做一些局部性的实验,以降低失败的概率。电路搭建完毕后,便是硬件系统调试,这是一个较为艰苦的过程。 在这个过程中,往往会发现在设计阶段犯下了许多不该犯的错误,甚至是致命性的错误。在经过反复的系统调试、修改错误后,才终于能形成一个满足设计的系统。

      图1(b)是采用HDL 的设计过程,在这种过程中,硬件的实现用可编程逻辑器件。仅从过程上看,它似乎需要更多的步骤,其实如STEP5 等步骤仅是一项简单的操作,系统实现的成功率很高。成功率高的原因在于:在STEP4 之前,是对逻辑电路或系统进行逻辑描述和仿真,这些都是在计算机上进行的,其特点是有很大的可修改性,又不会发生硬件上的成本投入。在这个阶段得到满意的仿真结果后,便可设计硬件电路。而这时的硬件设计可以说已经有较大的把握,所实现的系统也将容易调试。除此之外,硬件也容易设计成兼容性较好的系统,使一个硬件电路在写入不同的HDL 目标代码后可有相应的功能,有些方面就像一个CPU 在不同的软件支持下表现出不同的功能一样,这也是采用可编程逻辑器件的很大优越之处。
1.3 用HDL描述数字电路
      现在,让我们通过一个简单的例子来看两种设计过程。
      图2所示为一个简单的逻辑电路,其逻辑表达式为
      F=/A*(B+C) (1)
      就是这样一个简单的逻辑电路,如果用传统的硬件电路实现方法,要用到74LS04、74LS08 和74LS32 三个功能集成电路,做如图3 的连接。从图中可以看出,仅仅为了实现一个简单的逻辑关系,就需要有3 个集成电路,而且许多个门(此例中有11 个)白白被浪费掉。

      但是,如果用可编程逻辑器件来实现的话,只要用一片集成电路就可以实现了,例如可以用Xilinx公司的可编程逻辑器件XC9572。用可编程逻辑器件实现式(1)所示的逻辑功能时,只要将逻辑表达式按规定的语法进行描述,经过仿真、编译等过程,最后下载到可编程逻辑器件中,就可以完成所设计的逻辑功能。逻辑电路的设计越复杂,可编程逻辑器件就越能显示出其优越性。不仅如此,有许多逻辑功能用可编程逻辑器件可以很容易地实现,而要用普通的功能特定的集成电路就很难实现。
      对于式(1 )所示的逻辑功能,用Verilog-HDL 可描述如下:
      module AND_G2 (A,B,C,F);
      input A, B, C;
      output F;
      assign F = ~A & (B | C);
      endmodule
      将上述的Verilog-HDL经过仿真确认逻辑关系正确后,就可以编译、下载到可编程逻辑器件中。这种情
况下,一片可编程逻辑器件就具有了图3所示的3片集成电路所构建的电路功能,如图4 所示。图中,逻辑门之间的连线是在芯片内部自动完成的。由此可见,它与传统的逻辑电路设计相比,设计过程很简单。

1.4 HDL有几种?
      在计算机软件方面,程序设计语言有C、VC 、VB 等语言。要设计一个软件系统,或许用这些语言中的某一种都可以实现,但是各自又有其特点。
      HDL 也是一样,有若干种语言,最有代表性的是Verilog-HDL 、 VHDL(Very high speed integrated circuitHardware Description Language)和A B E L - H D L 等。V H D L 在美国较为流行,而Verilog-HDL 在***则为主流。VHDL 是最早标准化的HDL,语法丰富且严谨。Verilog-HDL 具有类似于C 语言的语法体系,库文件丰富,十分便于具有一些C 语言基础的人学习。本讲座采用Verilog-HDL 来描述数字系统。
1.5硬件实现的承担者——CPLD/FPGA
      用HDL 描述的功能,最终要由硬件来实现,就好象计算机软件的功能要在计算机硬件这个平台上实现是一样的。更形象地说,计算机的软件代码要装到计算机各个硬件中去,HDL 的目标代码也需要装到一个硬件------ 可编程逻辑器件中去,可编程逻辑器件有CPLD(Complex Programmable Logic Device)和FPGA(Field Programmable Gate Array)之分。
      CPLD 与FPGA 都是大规模集成电路,两者在结构上完全不同,但它们都具有可编程的特性,对器件的编程是通过称为JTAG 的接口来实现的。对CPLD 的编程可多次进行,如X i l i n x 公司的XC9500 系列就可以多次编程达1 万次以上。
      CPLD 是在PLD(ProgrammableLogic Device)的基础上发展起来的。可编程逻辑器件端子间的关系用语言来描述,并通过计算机将目标代码写入器件。PLD 的出现,省去了用通用逻辑IC(如74 系列)来搭建电路,使得逻辑设计的自由度大大提高。CPLD 是复杂化了的PLD,完整地讲应该称为复杂可编程逻辑器件。
      在逻辑门的数量方面,C P L D 与FPGA 有很大的不同,CPLD 的逻辑门有几百到1 万个,而FPGA 有1 万至25 万个逻辑门。Xilinx 公司的XC9536,有36个宏单元,800 个逻辑门;XC95108 有108个宏单元,2400个逻辑门。由于结构上的原因,CPLD在大型复杂设计的情况下,其运行速度可以预测,也很可靠,且修改设计也很容易,软件编译速度也快。
      在应用方面,CPLD 更适合于逻辑密集型的应用,如状态机和地址解码器逻辑等。而F P G A 则更适合于C P U 和DSP 等寄存器密集型的设计。而在功耗方面,与同样密度的FPGA 相比,CPLD的待机功耗更低。因此,CPLD 特别适合那些要求低功耗和低温度的电池供电应用,如移动设备等。
1.6 Xilinx的CPLD—XC9500系列
      XC9500 系列是Xilinx 公司生产的CPLD。
      图5 给出了XC9536 和XC9572的外形图
      上述器件采用的封装形式称为PLCC(Plastic Leaded Chip Carrier)封装,芯片的插座及芯片插入后的情形如图6 和图7 所示。插座管脚的间距为0.1英寸(2.54mm),与普通的IC管脚的间距相同。图6(a)给出
 
了44脚和84脚的插座,其外形大小分别约为23mm × 23mm 和37mm × 37mm 。
      对芯片的起拔需要专用的工具,图7示出了起拔工具和使用方法。

1.7 结语
      本讲叙述了数字电路和系统的两种不同设计过程,介绍了用可编程逻辑器件实现数字系统的优点,简述了HDL 在逻辑设计中的作用。HDL 有多种,本讲座采用Verilog-HDL,它类似于C 语言图5 XC9572及XC9536的外形的语法体系,库文件丰富,十分便于具有一些C 语言基础的人学习。Xilinx 公司的CPLD 器件有XC9500 系列,本文介绍了该芯片的外形及管脚分布,为后续的学习建立一个感性认识。

看《匠人手记》,与匠人同行!北航出版,正在热卖!

发表评论:
载入中...

芯片专题

器件专题

软件专题

硬件专题

综合专题

项目专题

原创专题

器件检测
LCD LED
按键 触摸键
E2PROM
电池 电机
电阻 电容 电感

指令系统
软件算法
编程规范
滤波算法
串行通讯

PCB设计
I2C PWM
红外遥控
充电技术
中断 ADC 

匠人手记
匠人夜话
网络心路
一周热点串烧
从零开始玩PIC
DIY旋转时钟

广告5号位 [投放]


学习板、开发板、编程器、下载器、仿真器(查看详情……)

广告3号位 [投放]

站内搜索


站外搜索


百度  google
mp3  歌词 
图片  FLASH 
知道  文档
新闻  词典 
地图  mp3 
软件  天网 
雅虎  爱问 
搜狗  讯雷 
网讯  华军 
天空 

21IC器件搜索
百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人手记》21IC书友会
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     

    匠人原创

    往日酷贴

     
     
     

    大千八卦

    友情连接

    新浪新闻:
    新浪财经:
    AK58新闻:
    新浪股票:
    新浪股票:
    证券之星:

     [更多酷站连接]

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [柔月阁]

    [八楼的呼吸]

    [hotpower 的水潭]

    [xwj的文君阁]

    [所长的BLOG]

    [阿摆手记]

    [电子伙伴]

    [unaided的笔记]

    [小飞的笔记]

    [单片机开发联盟]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [数字电视之家]

    [SMARTCODE电子书斋]

    [软件开发之窗]

    [Armoric]

    [我爱研发网]

    [infernal的笔记]

    [雄鹰的空中加油站]

    [SunK]

    [逍遥电子]

    [ningpanda的博客]

    [C-Design]

    [一网见天下]

    [海边淘沙]

    [嵌入式365]

    [水牛的仓库]

    [股剩是怎样炼成的]

    [PIC论坛]

    [ICC AVR开发网]

    [中国高校自动化网]

     

     

     

    MCU博客-中国电子工程师博客网 

    大学生电子网 

     

     

     

     

     

    !!! 《匠人的百宝箱》 !!!