Verilog HDL与CPLD FPGA项目开发教程 教学课件 ppt 作者 聂章龙 01 开发入门课件 任务五

上传人:E**** 文档编号:89183408 上传时间:2019-05-20 格式:PPT 页数:14 大小:1.03MB
返回 下载 相关 举报
Verilog HDL与CPLD FPGA项目开发教程 教学课件 ppt 作者 聂章龙 01 开发入门课件 任务五_第1页
第1页 / 共14页
Verilog HDL与CPLD FPGA项目开发教程 教学课件 ppt 作者 聂章龙 01 开发入门课件 任务五_第2页
第2页 / 共14页
Verilog HDL与CPLD FPGA项目开发教程 教学课件 ppt 作者 聂章龙 01 开发入门课件 任务五_第3页
第3页 / 共14页
Verilog HDL与CPLD FPGA项目开发教程 教学课件 ppt 作者 聂章龙 01 开发入门课件 任务五_第4页
第4页 / 共14页
Verilog HDL与CPLD FPGA项目开发教程 教学课件 ppt 作者 聂章龙 01 开发入门课件 任务五_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《Verilog HDL与CPLD FPGA项目开发教程 教学课件 ppt 作者 聂章龙 01 开发入门课件 任务五》由会员分享,可在线阅读,更多相关《Verilog HDL与CPLD FPGA项目开发教程 教学课件 ppt 作者 聂章龙 01 开发入门课件 任务五(14页珍藏版)》请在金锄头文库上搜索。

1、2019/5/20,1,用Verilog HDL语言设计闪烁灯和流水灯 - 【任务五】,2,学习目标设计,能运用Verilog HDL语言设计闪烁灯和流水灯等 简单输入输出的程序代码,以达到对Verilog HDL 语言的编程框架及基本语句的运用,能力目标,会用initial块和always块进行 Verilog HDL语言的初步编程,3,学习目标设计,掌握Verilog HDL语言的基本语句 及编程结构的综合应用,掌握带有时序和不带有时序的 always块语句的应用,实验的仿真及下载技能,互帮互助的同学关系,积极主动的学习状态,4,教学情境设计,通过两个实例,介绍CPLD/FPGA开发实验板

2、的发光管模块与EPM1270T144C5N核心芯片引脚对应关系,重点介绍Verilog HDL语言的always块语句及基本编程结构,并最终将这两个程序下载到实验板调试运行,内容,5,教学任务,闪烁灯设计,流水灯设计,6,子任务一 闪烁灯设计,在CPLD/FPGA开发实验板上实现L1L8周期性(如:1秒)的闪亮,任务,通过此案例的编程和下载运行,初步了解和掌握Verilog HDL语言的always块语句及基本编程结构,要求,电路原理图,分析,light.v,程序设计,module light(ledout,clk); /模块名light output7:0 ledout; /定义小灯输出口

3、input clk; /定义时钟输入口 reg7:0 ledout; /定义小灯输出口为寄存器 reg23:0 counter; /定义分频计数器 always(posedge clk) /过程,每1/(24*1024*1024)秒执行一次 begin counter = counter +1; /计数器加1 if (counter =24b110000000000000000000000) /是0.5秒吗? begin ledout=ledout; /是,则输出相反状态 counter =0; /计数器清零 end end endmodule,7,在Verilog HDL语言中,所有的描述都

4、是通过下面四种结构中的一种实现的: initial块语句 always块语句 task任务 function函数,Verilog HDL语言的always语句解析,8,initial块语句,initial begin 语句1; 语句2; 语句n; end,always块语句,always begin 语句1; 语句2; 语句n; end,always(in1 or in2 or ctrl) begin case(ctrl) 1b0:out=in2; 1b1:out=in1; default:out=1bx; endcase end,9,always块语句,不带时序控制的always块语句,带时

5、序控制的always块语句,带事件控制的always块语句,posedge与negedge关键字,/不带时序控制的always块语句 always begin clock=clock; end,/带时序控制的always块语句 always begin #100 clock=clock; end,/带事件控制的always块语句 always(posedge clock) begin ledout_reg=8b010101; end,/ posedge与negedge关键字 always(posedge clock) begin ledout_reg=8b010101; end,10,实验步骤

6、,下载运行,新建工程项目light.pof,建立Verilog源程序文件light.v,选择一个目标器件(EPM1270T144C5N芯片 )并锁定相应的管脚,进行编译处理,若发现错误,找出并更正错误直至成功为止,输入必要的激励波形文件,进行模拟波形仿真,下载程序到CCIT CPLD/FGPA实验仪的EPM1270T144C5N器件,11,子任务二 流水灯设计,利用CPLD/FPGA开发实验板上的L1L8,实现流水灯发光二极管显示,任务,通过此案例的编程和下载运行,初步了解和掌握Verilog HDL语言的always块语句及基本编程结构,要求,与子任务一中的闪烁灯基本相同,所不同的是当计数到

7、1秒时输出流水灯一次,分析,ledwater.v,程序设计,module ledwater(ledout,clk); /模块名light output7:0 ledout; /定义小灯输出口 input clk; /定义时钟输入口 reg7:0 ledout; /定义寄存器 reg23:0 counter; /定义分频计数器 /* initial块对小灯进行初始化,初始值为8b11111111 */ initial ledout=8b11111111; /赋初值 /* always块实现右流水灯 */ always(posedge clk) /每个时钟周期执行一次 begin counter

8、= counter +1; /计数器加1 if (counter =24b110000000000000000000000) /是0.5秒吗? begin ledout=ledout1; /是,则左移1位 if(ledout=8b00000000) /循环完毕? ledout=811111111; /是,则重新赋初值 counter=0; /计数器清零,重新计数 end end endmodule,12,若基准时钟为24MHz,则时钟周期计算方法:T=1/F;T为周期,F为时钟频率。要得到2Hz(即周期为0.5秒)的脉冲信号,则要分频,分频系数:K=(24*1024*1024)/2=12582

9、912;所以在Verilog HDL语言中通过定义计数器来进行分频,always(posedge clk)表示在时钟上升沿执行后面的块语句,也就是每1/(24*1024*1024)秒执行一次。每执行一次,则counter计数器加1,当counter达到(24*1024*1024)/2次时,则程序共运行了0.5秒。这时才对小灯输出口进行处理,这样就达到了1秒闪烁一次的效果。,分频方法解析,13,实验步骤,下载运行,新建工程项目ledwater.pof, 建立Verilog源程序文件ledwater.v,选择一个目标器件(EPM1270T144C5N芯片 )并锁定相应的管脚,进行编译处理,若发现错误,找出并更正错误直至成功为止,输入必要的激励波形文件,进行模拟波形仿真,下载程序到CCIT CPLD/FGPA实验仪的EPM1270T144C5N器件,14,习题,(1)编写前四个小灯L1L4与后四个小灯L5L8周期性闪亮的程序代码,并编译下载到CCIT CPLD/FGPA实验仪的EPM1270T144C5N器件中验证。 (2)编写代码,实现左流水灯(要求:每流水一次,只能亮一个小灯,即前一个小灯熄灭后,下一个才能亮,如此,从左向右循环进行)。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号