基于cpld的电梯控制器的设计毕业设计论文(编辑修改稿)内容摘要:

作环境,只有在 MAX+Plus II 下才能完成VerilogHDL 语言的编译 与仿真工作,通过波形图能更直观的表达出程序的工作情况。 MAX+Plus II 是一个完全集成化、易学易用的可编程逻辑设计环境,它可以在多平台上运行,其图形界面丰富,加上完整的、可即使访问的在线文档,是设计人员可以轻松的掌握软件的使用。 其开发系统有许多特点: ; ; ; 4. 15 模块化工具; MAX+Plus II 软件支持各种 HDL 设计输入选项,包括 VHDL、 Verilog HDL 和 Altera 公司的 AHDL。 这次的设计应用的为 Verilog HDL。 其程 序流程图如下: 下面就来介绍一下 MAX+Plus II 的操作: 16 基于 MAX+Plus II 软件的 Verilog 设计步骤大致如下所示。 ( 1)建立设计项目,创建设计文件; ( 2)输入设计文本并保存; ( 3)对 HDL 文件进行编译,检查句法错误并修改; ( 4)进行功能仿真,如有错误,则修改源文件; ( 5)对设计指定器件并适配; ( 6)进行时序仿真,如有错误,修改源文件; ( 7)若以上步骤全通过的话,可进行下载或其他操作。 先打来 MAX+Plus II 软件,然后在菜单栏中,选择“ File”,接着点“ New”会 出现一个对话框,该对话框中有四个选项,分别是原理图形式、编辑文件形式、文本形式、波形形式,编程是在文本形式下完成的,所以选中文本形式,点击“ OK”键,如图 32 所示: 图 32 17 选择第三个 Text Editor file 进行文本输入,建立文本形式后,就可以进行编程了,编程时要注意避免错误。 VerilogHDL 的程序如下: 紧急停靠模块 Module jinji(clk,xf,fl,door,o1,o2,o3,o4,o5,o6,o7,o8)。 input clk,xf。 output o1,o2,o3,o4,o5,o6,o7,o8,door。 output[3:0] fl。 reg o1,o2,o3,o4,o5,o6,o7,o8,door,nf。 reg[3:0] fl。 always@(posedge clk) begin if(xf) nf=1。 if(nf) begin if(fl==439。 b0001) begin door=1。 nf=0。 end else begin 18 fl=fl1。 door=0。 {o1,o2,o3,o4,o5,o6,o7,o8}={o1,o2,o3,o4,o5,o6,o7,o8}1。 end end end endmodule 紧急停靠装置 ,装于轿厢司机操纵盘上,发生异常情况时,按此按钮切断电源,电磁制动器制动,电梯紧急停车。 属于电梯安全工作范围的要求控制范围,当在轿外按按下此按钮,控制系统给出高电平,此控制模块的优先级高于其他控制模块,此按钮按下程序直接执行该程序,关闭轿门,电梯直接运行到第一层,期间的任何呼叫都不响应。 完成文本输入之后,选择菜单“ File”→“ Save As”保存文件与程序中 Module 后的文件名相同,文件名为“ jinji”,如图 33。 然后选择菜单“ File”→“ Project”→“ Set Project to Current File”将该文本设为当前项目,如图 34。 19 图 33 图 34 通过上述操作完成了文本输入,以下是对设计文本的处理过程。 编译设定 : HDL 文件输入后,即可启动编译程序来编译项目。 编译器将进行 20 错误检查、网表提取、逻辑综合、器件适配、编程文件产生等操作。 在编译前应完成以下操作: ( 1)为设计指定器件,并锁定引脚; ( 2)选择设计规则检查; ( 3)设定全局逻辑综合有关选项; ( 4)设置全局定时要求; ( 5)打开功能仿真器或定时模拟器、网表文件提取器; ( 6)指定在 .rpt 文件中报告内容。 需注意的是,在设置以下一些编辑项目时,应先进入编译界面,选择菜单命令“ MAX+Plus II” → “ Compiler”,打开文件编译窗口,如图35 所示,即出现了与编译设置相关的菜单。 图 35 点击“ Start”启动编译,如无错误,会显示如图 36 所示。 21 图 36 在编译过程中所有信息、错误和警告都会在自动打开的信息处理窗口中显示出来。 如果有错误产生,选中该错误信息,然后按下 Locate按钮可自动定位错误,也可双击该错误信息来实现。 图 37 22 按照所提示的信息将程序中的 错误一一修改后,再次进行编译,直到没有错误为止。 编译完成后,那些由编译起产生的代表输出文件的图标将会出现在各模块框的下面,可通过双击适当的文件图标来打开这些文件。 编译完成后会产生如下一些重要文件: ( 1)适配报告:包括芯片内部资源的利用情况、设计的方程描述情况等。 ( 2)面向其他 EDA 工具的输出文本,如 EDIF 文件等。 ( 3)延时信息:以便于进行精确的时序仿真。 ( 4)器件编程文件:如用于 CPLD 编程的 .pof 文件、用于 FPGA培植的 .sof 文件等。 程序编译完成后,接下来就是波形的仿真了,单击菜单栏中的“ ”图标,会弹出一个对话框,选择“ Waveform Editor file”后点击“ OK”键,就进入波形仿真的界面了。 建立波形图时,要将程序中所涉及到的各个结点都导入到波形图中,才能使仿真正常进行,点击菜单栏中的“ Node”中的“ Eeter Nodes from CNF„„”会出现图 38 所示,点击对话框中的“ List”,在左边的框中会出现程序中所有涉及到的结点,然后点击对话框中的“ =”,将所有的结点都移右边的框中,再点击“ OK”,所有的结点就都移至波形仿真环境下了。 如图 39 所示。 23 图 38 图 39 当所有的结点都导入后,根据程序中的要求,将输入结点进行赋值,点击下图所示中的“ ”可以对输入结点进行时钟赋值,起始值可以 24 自己设定;“ ”是进行任意赋值,还有其他的图标,可根据需要来选择。 所有输入结点都赋值后,点击“ MAX+Plus II”中的“ Simulator”进行仿真,会出现如图 310 所示。 点击“ Start”进行仿真,无错误后会有图 311 所示 图 310 图 311 25 点击“ Open SCF”,就会出现仿真图了,如图 312 所示 图 312 当 紧急按钮按下,电梯门立即关闭楼层显示信号一直从当前楼层依次降到一楼,程序直到电梯运行到一楼为止,在此期间其他的呼叫均不响应。 完成上述过程后进行器件创建,点击菜单“ File”→“ Create Default Symbol”,如图 313 所示。 图 313 26 生成如下: 主控模块的设计 此部分模块包括请求输入模块、主控模块、移位寄存显示模块和楼层显示几部分。 其控制器系统框图如图 314 所示。 图 314 27 此部分的 Verilog HDL 的程序如下所示: module lift(clk,d1,d2,d3,d4,d5,d6,d7,d8,door,f1)。 input clk,d1,d2,d3,d4,d5,d6,d7,d8。 output o1,o2,o3,o4,o5,o6,o7,o8,door,f1。 reg o1,o2,o3,o4,o5,o6,o7,o8,door,up,down。 reg[8:1] des。 reg[2:0] count。 reg[3:0] low,high,f1。 clk:时钟信号; d1,d2,d3,d4,d5,d6,d7,d8:楼层请求信号; o1。 o2。 o3。 o4。 o5。 o6。 o7。 o8:楼层及请求信号状态显示; door:开门指示信号; f1:送数码管显示的当前楼层数 以上为定义此模块的输入、输出以及内部传递信号。 (1)请求模块 在请求信号输入模块中,设置 8 个开关电平信号, d d d dd d d d8 表示 8 个楼层的请求信号,每次最多允许两个信号同时请求。 并实现呼叫信号记忆。 if(d1)begin des[1]=1。 if(low1||low==439。 b0000)low=1。 end if(d2)begin des[2]=1。 if(high2amp。 amp。 {d3,d4,d5,d6,d7,d8}==639。 b000000)high=2。 if(low 28 2||low==439。 b0000amp。 amp。 !d1)low=3。 end if(d3)begin des[3]=1。 if(high3amp。 amp。 {d4,d5,d6,d7,d8}==539。 b00000)high=3。 if((low3||low==439。 b0000)amp。 amp。 {d1,d2}==239。 b00)low=3。 end if(d4)begin des[4]=1。 if(high4amp。 a。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。