通过实例,走近PLD

FPGA/ASIC技术

204人已加入

描述

  电子发烧友网:PLD设计,相信对很多人而言都不陌生。当然也有对它不是那么了解的人,那么即使你没有深入接触过PLD,我们也可以让你可以在短短的几十分钟内初步学会PLD设计! 通过对本文的学习,你将迅速走进PLD世界。不信吗? 那我们就慢慢往下看。本文主要通过分别采用VHDL、Verilog-HDL和原理图输入方式设计一个简单的三人表决器,并下载到PLD实验板进行仿真、运行。

  三人表决器的主要功能介绍:三个人分别拨动开关SW1、SW2、SW3来表达自己的观点(如果对某决议同意,各人就把自己的指拨开关拨到高电平(上方),不同意就把自己的指拨开关拨到低电平(下方))。表决结果用LED(高电平亮)显示,如果决议通过那么实验板上L2(黄灯)亮;如果不通过那么实验板上L1(红灯)亮;如果对某个决议有任意二到三人同意,那么此决议通过,L2亮;如果对某个决议只有一个人或没人同意,那么此决议不通过,L1亮。功能虽然简单,但是大家可以从这个实验中学习到PLD的设计输入,仿真,下载等一系列完整的过程。

  本次设计采用的软件:Max plusII 10.2 软件;硬件设施:PC机一台,JX002B型实验板,电源,下载电缆。

  软硬件均准备好以后,就可以开始我们的设计了。下面是我们的具体实施过程:

  一.采用原理图设计输入三人表决器

  我们根据三人表决器的直值表,可以通过卡诺图化简可以得到:

  L2=SW1SW2 SW1SW3 SW2SW3

  L1=_L2

  那么我们可以在MAX plusII中用原理图实现上面的三人表决器

  下面仅把和VHDL不同的详细写下,相同或基本相同的就一带而过:

  (1)打开MAX plusII

  (2)新建一个图形文件:File菜单>new

  新建文件时选择Graphic Editor file

  

FPGA芯片

 

  点OK

  (3)输入设计文件

  我们现在在图形文件中输入电路,我们这个电路需要AND2、OR3、NOT三个逻辑门电路和输入输出端,你可以

  Symbol ->Enter Symbol(或者双击空白处)

  

FPGA芯片

 

  弹出窗口:

  

FPGA芯片

 

  在Symbol Name中输入and2,点OK

  同样可以加入or3、input、output、not

  

  对input、output,鼠标左键双击PIN_NAME,那么PIN_NAME被选中,并且变黑,然后输入你要改的名字,如SW1

  

FPGA芯片

 

  【关于“采用原理图设计输入三人表决器”详细部分请参考:PLD设计速成(2)-采用原理图设计三人表决器

  二.采用VHDL设计输入三人表决器

  打开MAX plusII,在开始菜单内选择MAX PLUS II 项,开始运行MAX PLUS II(如下图)

  

FPGA芯片

 

  你最好把图标放到桌面上,以后直接双击MAX PLUS II图标就可以运行软件了

  在MAX PLUSII上点右键,选择发送到->桌面快捷方式(如下图),那么你桌面上就看到MAX PLUS II了。

  

FPGA芯片

 

  3.2 新建VHDL文档

  (图形和verilog-HDL设计的过程见后面的部分)

  FILE->NEW

  

FPGA芯片

 

  【关于“采用VHDL设计输入三人表决器”详细部分请参考:PLD设计速成(3)-采用VHDL设计输入三人表决器

  三.采用VerilogHDL输入三人表决器

  下面仅把和VHDL不同的详细写下,相同或基本相同的就一带而过:

  (1)打开MAX plusII

  (2)新建

  新建一个verilog-HDL文件(Text Editor File类型)

  (3)输入设计文件

  其中SW12,SW13,SW23为中间变量

  module majority_voter(SW1,SW2,SW3,L1,L2);

  output L1,L2;

  input SW1,SW2,SW3;

  and(SW12,SW1,SW2);

  and(SW13,SW1,SW3);

  and(SW23,SW2,SW3);

  or(L2,SW12,SW13,SW23);

  //SW12、SW23、SW13是中间变量

  not(L1,L2);

  endmodule

  (4)保存文件

  保存为majority_voter.v,注意Automatic Extension选.v

  

FPGA芯片

 

  并把文件设为当前工程(同前)

  

  四.波形仿真

  此过程主要是用软件来仿真你的设计,看看结果是否符合你的设计要求

  编译好以后,打开波形编辑器,MAX PLUSII->Waveform Editor

  

FPGA芯片

 

  载入端口,Node->Enter Nodes from SNF

  

FPGA芯片

 

  将弹出下面窗口,你按下面步骤操作:

  

FPGA芯片

 

  点List,将出现端口列表,你默认是选择全部,你也可以通过左键和Ctrl组合来选择你想要的信号。

  点=>将你的信号加入SNF文件中

  点OK

  为了方便观察,我们把信号展开

  

FPGA芯片

 

  如果需要再次合并可以按住SHIFT键,用鼠标左键选上要合并的信号,再点右键->Enter Group

  

FPGA芯片

 

  【关于“波形仿真”详细部分请参考:PLD设计速成(5)-波形仿真

  

  五.编译和布线

  我们先要指定所用芯片的型号,

  菜单:Assign->Device

  如下图

  

FPGA芯片

 

  将弹出一窗口

  (注意把show only fastest speed grades前的钩去掉,否则看不到EPM7128SLC84-15)

  

FPGA芯片

 

  在Debice Family 中选择MAX7000S

  DEVICE选择EPM7128SLC84-15

  再指定芯片的管脚(也就是把你设计的IO口如L1,L2指定到芯片对应的管脚上如10,9)

  Assign->Pin/Location/Chip(也可以在空白处点右键,选Assign->Pin/Location/Chip)

  

FPGA芯片

 

  将弹出下图窗口:

  

FPGA芯片

 

  【关于“编译和布线”详细部分请参考:PLD设计速成(6)-编译和布线

  

  六.安装下载电缆的驱动程序

  MAX plusII 软件的驱动设置

  在Win98下运行MAX plusII可以自动检测到ByteBlasterMV(ByteBlaster)下载电缆,但在WIN2000、WINXP下无法自动检测到它的存在。如何在WIN2000和WINXP平台下安装使用ByteBlasterMV并口下载电缆呢?

  WIN2000

  1)在控制面板中选择“添加/删除硬件”

  

FPGA芯片

 

  2)选择“添加/排除设备故障”,下一步

  

FPGA芯片

 

  3)选择“添加新设备”,下一步

  

FPGA芯片

 

  【关于“安装下载电缆的驱动程序”详细部分请参考:PLD设计速成(7)-安装下载电缆的驱动程序

  

  七.下载验证

  ( 注意:本次实验采用的JX002B实验板已经将下载电缆的电路都做在了实验板上,所以只需要一根并口延长线即可,实际使用中一般都使用标准的下载电缆(ByteblasterMV、ByteblasterII)和并口相连,下载电缆再和PLD芯片相连)

  在下载前,还要进行以下步骤:

  A:将JX002B实验板的电源开关拨到OFF(上方)

  

 

  B:将并口下载电缆母端插到JX002B实验的25针下载口上,并口电缆公端插到电脑的打印口上,参考下面四张图(不可能插错,否则插不上)

  并口电缆母端

  

 

  并口电缆公端

  

 

  JX002B实验的25针下载口

  

FPGA芯片

 

  【关于“下载验证”详细部分请参考:PLD设计速成(8)-下载验证


        关于三人表决器的整个设计、仿真及运行过程就到此结束了。想要了解更多的话,继续关注我们电子发烧友网,更多精彩内容等着你!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分