




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、跟我学Cupl之一简介Cupl语言大家可能没有听说过,实际上它是国内唯一一种和ABEL语言类似,而且可以在 Windows环境上开发GAL系列PLD的编译环境。WinCupl这种编译环境由ATMEL公司出品,是免费软件,下载页面 是 id=653 ,在该页面中选择 WinCupl 的下载,登记一下你的基本情况就能下载了。下载时会给你注册码,很方便。一、Cupl的保留字Cuple的保留字包括以下的字串:APPEND FORMAT OUTASSEMBLY FUNCTION PARTNO ASSY FUSE PINCOMPANY GROUP PINNNODECONDITION IF PRESENT
2、DATE JUMP REV DEFAULT LOC REVISION DESIGNER LOCATION SEQUENCE DEVICE MACRO SEQUENCED ELSE MIN SEQUENCEJK FIELD NAME SEQUENCERS FLD NODE SEQUENCET这些字串是不能被用作其它的用途的。尤其是不能被当作标号使用。Cupl语言有一些运算符,包括:& # ()- * + / :./* */ ;,!=下面是一个门电路的例子,通过这个例子我们可以学到基本的Cupl 语言的用法,在该文件中 /*/ 之间的为注释。NameGates;PartnoCA0001;Date0
3、7/16/87;DesignerG Woolheiser;CompanyATI;LocationSan Jose, CA.;AssemblyExample;/*/*/* 这是一个表示CUPL 语言基本用法的例子*/*这个例子实现基本门电路.*/*/*/* 目标设备 : P16L8, P16P8, EP300, and 82S153*/ /*/* 输入 : 定义简单门电路的输入端 */Pin 1 = a; /* 引脚1:输入端,名称是a */Pin 2 = b;/* 输出端 : 定义 PAL16L8 和 PAL16LD8 器件的输出端。 */Pin 12 = inva; /* 引脚 11:输出端
4、,名称是inva */Pin 13 = invb;Pin 14 = and; /*引脚14:输出端,名称是 and,与VHDL不同,and不是关键字,可以作为标号使用*/Pin 15 = nand;Pin 16 = or;Pin 17 = nor;Pin 18 = xor;Pin 19 = xnor;/* 逻辑实现部分: 演示如何利用 CUPL 实现基本门电路 */inva = !a; /* 反相器*/invb = !b;and = a & b; /* 与门 */nand = !(a & b); /* 与非门 */or = a # b; /* 或门 */xor = a $ b; /* 异或门
5、*/nor = !(a # b) /* 或非门 */xnor = !(a $ b); /* 同或门 */通过上面例子的学习,我们应该对Cupl 语言有了初步的了解。WinCupl 不但可以编译该文件,生成JED 的熔丝文件,还可以对该文件进行波形仿真。在做小规模的PLD 设计的时候,使用 GAL 系列或者 ATF 系列的 PLD 比较方便,也比较便宜。Cupl 文件的基本格式在编写Cupl 语言源文件需要遵守一定的格式,源文件由头部说明、输入引脚说明、输出引脚说明和逻辑实现4 部分组成,缺一不可。一、头部说明头部说明一般包括以下部分:Name WAITGEN ;Partno P9000183
6、;Revision 02 ;Date 1/11/89 ;Designer Osann ;Company Logical Devices, Inc. ;Assembly PC Memory Board ;Location U106 ;Device F155;Format ij ;Name关键字用来说明逻辑文件的文件名,默认的扩展名是PLD ,因此可以不写扩展名。Partno 关键字用来说明对特定的 PLD 器件对应的某个公司的部件号。如果不知道,可以不要这个部分。Revision 设计公司设计该源文件的版本号。可以不填,可以没有Date 设计日期,可以不填,可以没有Designer 设计者的名称
7、,可以不填,可以没有Company 设计者所在公司名称,可以不填,可以没有Assembly 本设计用于PC 机板卡时的名称,可以没有Location 本设计用于 PC 机板卡时所在的位置,可以没有Device 必填字段,用来选择本设计所用的具体 PLD 器件型号,Format 用来指定本文件编译后产生的烧写芯片文件的种类。 h 表示产生 HEX 格式的 ASCII 码文件, i表示 HL 格式的文件, j 表示产生 JEDEC 格式的文件。二、引脚说明在 PLD 源文件中,所用的输入输出引脚都必须说明后才能使用,因此,可以象下面格式一样说明引脚PIN pin_n=!var ;PIN 是关键字,
8、 pin_n 是引脚号码, var 是引脚定义的名字,该名字用在后面的逻辑实现中。 !是可选的,用来说明引脚的极性,如果没有!,输入是什么就是什么,为同相,如果有! ,就表示输入后信号反相。下面是一个实际的例子:Pin 2 = !A;Pin 3 = !B;Pin 16 = Y;Y = A & B; /* 逻辑实现部分 */当然,如果有一系列的引脚需要说明,这些引脚又是连续的,可以用 符号来说明,比如Pin2.6 = A1.5;就表示引脚 2 到 6 用 A1 到 A5 来表示,比较方便。三、逻辑实现部分逻辑实现部分用来实现引脚之间的逻辑关系。它主要靠一些逻辑操作符来实现引脚之间的关系。这些逻辑
9、关系包括:逻辑符号例子关系操作优先级!ANOTANDORXOR其中,!表示非,& 表示与,#表示或,$表示异或,异或的操作优先级最低,非的优先级最高。搞清楚了这些东西,就可以自己实现最基本的逻辑门电路了。下一讲我们将说明如何使用 WinCupl 的环境。如何使用 WinCupl 软件环境WinCupl 是 ATMEL 公司出品的 Cupl 语言的编译环境,用于 PLD 器件的编程,支持多种器件,包括 GAL 系列和 ATF 系列。一般来说, ATF 系列的同等级产品要必GAL 的便宜,比如AFT16V8 就兼容 GAL16V8 ,可以擦写100次,价格上也便宜1块2块,性能都差不多。在 ATM
10、EL 公司的 SPLD/CPLD 栏目中免费下载WinCupl 后,可以得到一个注册码,用这个码就可以激活 WinCupl 了,这个码没有使用时间的限制。WinCupl 软件包实际包括两个部分,一个是 WinCupl,PLD 的编译环境,一个是WinSim ,相当于 MAX的波形仿真部分。接下来我们学习如何使用这个软件。一、编译第一个源文件第一次课我们举了一个例子,说明了 Cupl 语言的基本结构,下面我们做另一个例子,就是两输入端与门。具体步骤是:1、启动 WinCupl。启动完进入主界面后,单击 File菜单的New,从New中单击Projet,就是新建一个工程文件(其实还是 PLD文件)
11、,在弹出的对话框中,可以填您的源文件名字(Name),填MYGATE ,其它的东西怎么填请您复习第2 课的 PLD 文件头部文件的说明部分。这里有个特殊的地方,就是器件( Device) ,系统默认的是virtual ,就是不针对任何具体的部件,这里我们改掉,改成g16v8a ,这个关键字兼容ATF16V8 。2 、单击 OK 后,系统要你输入你要用的输入引脚数,因为我们只有两个输入端,因此填2 ,单击OK 按钮。3、系统要你输入要用到的输出引脚数,填1,单击OK 按钮。4 、系统要你输入要使用到的中间节点数,我们不需要,填0,单击 OK 按钮。这样系统就建立了一个PLD 文件,文件名就是MY
12、GATE.PLD 。系统将该文件显示出来了,就象下面这样:Name MYGATE ;PartNo 00 ;Date 2006-8-9 ;Revision 01 ;Designer WUJIAN ;Company TALE ;Assembly None ;Location ;Device g16v8a ;/* *INPUT PINS */PIN =; /*/PIN =; /*/* * OUTPUT PINS */PIN =; /*/因此,这个文件是空的,我们填一下,将输入输出引脚都填好,把逻辑也写完,就象下面这样:Name MYGATE ;PartNo 00 ;Date 2006-8-9 ;Re
13、vision 01 ;Designer WUJIAN ;Company TALE ;Assembly None ;Location ;Device g16v8a ;/* * INPUT PINS */*/*/PIN 2 = a; /*PIN 3 = b; /*/* * OUTPUT PINS */PIN 12 = Y; /*/Y = a & b;写好后,我们需要编译该文件。在 Run 菜单中,单击 Device Dependent Compile ,就是基于器件型号的编译。如果没有出现什么键入错误,都能成功编译。编译完成后,我们来仿真一下看看波形。二、仿真的基本方法编译完成后。单击工具栏图标的
14、从右侧数第 2 个,启动 WinSim 。启动完成后,单击 WinSim 菜单 File 中New1、在弹出的 Design Properties对话框中,单击 Design File按钮,选中 MYGATE.PLD 文件,按“确认按钮继续。在 Design Properties对话框中,单击 OK按钮确认。2、接下来 WinSim会提示是否创建 MYGATE.SIM 文件并编译它,单击“是”继续。3、不管接下来的提示,在 WinSim中Signal (信号)菜单中单击 Add,在弹出的Add Signal对话框中不断单击OK按钮将a、b、y三个信号加到波形图中。单击Done关闭该对话框。4、
15、在 WinSim的File菜单中单击Save项保存该项目。5、在黑色的网格的左上方有个Value, Value右边有个1,在1所在的灰色条上单击鼠标右键,在弹出的菜单中的Add Vector上单击鼠标左键,在弹出的对话框中输入3,表示增加波形仿真的 3段。6、在a的右侧的波形上单击鼠标右键,依次选 0, 0, 1, 1,在b的波形上单击鼠标右键,依次选 0, 1,0, 1。7、保存该工程。在 Simulator菜单中选择Simulator开始仿真,就可以看到 y的波形了。如下图所示唇星即5而-田CUPLMYGATE。量 F|e View SignalWindow He|p口后旧|朝回回唱|制夕
16、|扇F1 t 2 t 34Signal Value i i i 卜本次课我们学习了如何利用 WinCupl进彳f PLD逻辑设计和基本仿真方法。祝大家工作顺利,学习愉快。实现一个4D触发器我们原来学D触发器的时候,如果全部用组合逻辑来实现,推导出来的式子会很长很长,如果这么傻做的 话,会很麻烦。现在我们用引脚扩展名来实现就很方便。我们以GAL16V8B (在 WinCupl中对应的编译型号为 g16V8a)为例,GAL16V8B 一共有20个引脚。第1引脚是CLK,即时钟引脚,第29引脚是输入引脚,共8个。第10引脚是地,第11引脚是OE,低电平禁止,高电平允许。第 1219是输出引脚,共8个
17、,第20引脚是电源,一般可接 +5V。现在我们用该器件来实现一个4D 触发器,即 4 个同样的 D 触发器。在 WinCupl 中新建一个工程,文件内容如下:Name DSample ;PartNo 00 ;Date 2006-8-9 ;ReVision 01 ;Designer Wu Jian ;Company Tale ;Assembly None ;Location ;DeVice g16V8a ;/* * INPUT PINS */PIN 2.5 = A1.4;/* * OUTPUT PINS */PIN 18 = Q1;PIN 17 = Q2;PIN 16 = Q3;PIN 15 =
18、 Q4;Q1.D = A1;Q2.D = A2;Q3.D = A3;Q4.D = A4;很有意思吧。关键是最后的 QX.D 。这个“ .D”表示把Q1Q4当D触发器用。A1A4就是这4个D触发器的输入端,Q1Q4就是D触发器的输出端,正好4个。有人就要问了,时钟端呢?不要急,GAL16V8B 的第1个引脚就是时钟端,当时钟端的输入信号出现上升沿的时候就将第25引脚的信号锁存到第1815引脚。而11引脚可以当OE使能端用,正好一个 D触发器。本文件编译后,在 Proteus软件中的仿真图如下所示:好了,这个图大家可以自己去仿真。如果看过我的文章后对您有帮助的话,就达到我的目的了。在Proteus
19、中仿真上面3次课中我们学会了 Cupl的基本语法和如何利用 WinCupI软件包中两个重要的部分 WinCupI和WinSim 进行设计与波形仿真。如果我们需要验证 PLD器件与其它器件联合工作的情况呢?那就需要利用另一个著 名的仿真软件Proteus软件自带PLD库进行了。接下来我们把 MYGATE项目在Proteus中进行仿真。相信大家对 Proteus已经比较熟悉了。我们要做的 其实很简单。装好 Proteus后(我用的是Proteus 6.9,其实6以上就可以了),在元件库的PLD/FPGA项目中选择AM16V8 ,其实就是GAL16V8 ,将其拖到原理图上, 然后拖电阻和开关到原理图
20、上,再拖个发光管 到电路上。将其连好,如下图所示在原理图的AM16V8上,选中它,然后在上面单击鼠标左键,在弹出的对话框的JEDEC Fuse Map File栏中单击右侧的浏览图标,装入 MYGATE.JED文件即可。单击 OK按钮关闭该对话框。最后仿真该电路图。仿真开始后,可以通过拨动开关,看 AM16V8第12脚的输出结果,正好是一个与 门的逻辑。好了。我们已经介绍了 PLD器件的编程方法、编程工具的使用和如何进行实际情况的模拟。大家就可以自己设计出一些可用的电路了到底有哪些重要的引脚扩展名Cupl语言中引脚重要的扩展名包括:扩展名等式的某侧.AP左边(L)flip-flop的异步预置.
21、ARLflip-flop的异步复位.APMUXL多路选择器的异步预置.ARMUXL多路选择器的异步复位.BYPL可编程寄存器的旁路.CALComplement array.CELflip-flop的D触发器的输入使能.CKLflip-flop的可编程时钟.CKMUXL多路器件的时钟.DLflip-flop的D触发器的输入端DFB右边(R)D寄存器回馈路径选择.DQRD锁存器的Q 端 flip-flop扩展名等式的某侧.IMUXL 多路选择器的2 引脚的选择端.INTR寄存器宏单元的内部回馈路径.JLJK 触发器的 J 端 flip-flop.KLJK 触发器的 K 端 flip-flop.LL
22、D 输入锁存器.LEL可编程锁存器使能.LEMUXL锁存器使能多路选择器.OEL可编程输出使能.OEMUXL三态门的使能端.PRL可编程预置端.RLflip-flop 的 RS 触发器 R 输入端.SLflip-flop的RS触发器S输入端.SPLflip-flop 的异步置位端S.SRLflip-flop 的异步复位端R.TLflip-flop 的 T 触发器输入端由上面的列表可以知道,这些东西有些我们做小规模的 PLD 设计的时候根本用不上。如果是小规模的pld ,上面的某些扩展名是不支持的,比如在GAL16V8B 设计中, LE 就不支持。不过,我们能用触发器就是一个很大的进步,这样可以
23、在几百个门逻辑的规模下设计一些市面上买不到的器件。做一个 JK 触发器在前面的课程中我们学到了如何做一个4D 触发器,也知道了引脚扩展名。但是,如果你直接用 .J 和 .K 来申明一个 JK 触发器,并想用它在 gal16V8b 中实现是不可能的。为什么呢?因为GAL16V8 手册中指出,内部只有 D 触发器的逻辑,没有JK 触发器的逻辑,想直接借用是不可能的。可我们需要一个jk 触发器怎么办呢?我们可以查 数字电子技术 一类的书, 这些书中有的就告诉了我们怎么用 D 触发器实现一个jk 触发器,基本逻辑是:Q.D = (J1&!Q)#(!K1&Q);我们把这个逻辑用 GAL16V8 实现就可
24、以了。如果你看不懂的话,我可以解释一下。 Q 就是数字电子书 上的 Qn 。 !Q 就是 Qn 取反。我们现在把这个东西用 Cupl 语言实现如下:Name JKSample ;PartNo 00 ;Date 2006-8-10 ;Revision 01 ;Designer Wu Jian ;Company Zhu Zhou AI ;Assembly None ;Location ;Device g16v8a ;/* * INPUT PINS */*/*/PIN 2 = J1; /*PIN 3 = K1; /*/* * OUTPUT PINS */*/PIN 18 = Q; /*Q.D = (J1&!Q)#(!K1&Q);把这个文件敲进去。如果敲入正确,就能正常编译。在利用 Proteus 仿真的时候, GAL16V8B 的第 1 脚 是时钟CLK,上升沿有效,第 2脚是J脚,置位脚,第3脚是K脚,复位脚,第18脚是Q输出端。试试 看,这里我们就不需要给图了,只要你正确连线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模特拍摄经纪合同协议
- 品牌线下授权协议书模板
- 武汉五星级酒店协议合同
- 武威农村路灯合同协议
- 商品装修合同协议
- 江西省高安市第四中学2024-2025学年初三3月诊断考试语文试题含解析
- 售电公司购销合同协议
- 商务车队承揽合同协议
- 商务安全合同协议
- 周转房安全责任协议合同
- 2025-2030中国射频治疗设备行业市场发展前景及发展趋势与投资风险研究报告
- 砼构件预制件的模具设计与制造技术考核试卷
- 《跨行业并购问题研究的理论基础与文献综述》6300字
- 2025中煤鄂尔多斯能源化工有限公司高校毕业生招聘98人笔试参考题库附带答案详解
- 2025年保密观考试题库及答案
- 导游知识培训课件
- 西师大版小学五年级数学(下)期中测试题(1-4单元)(2)(含答案)
- 拌和站地基承载力及抗倾覆计算书
- 最新公司客户订单流程管理制度
- 生物分离工程第四章膜分离技术.ppt
- +770甩车场设计
评论
0/150
提交评论