Advertisement

Spartan 6 FPGA 经典流水灯实验VERILOG代码及Xilinx ISE14.6工程文件.zip

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:ZIP


简介:
本资源包含经典流水灯实验的VERILOG代码和Xilinx ISE14.6工程文件,适用于基于Spartan 6 FPGA的学习与开发。 Spartan 6 FPGA 设计经典流水灯实验VERILOG源码 Xilinx ISE14.6 工程文件 拨码开关SW3作为开关信号,导航按键UP和DOWN作为LED流动方向控制信号,实现8个LED开关、方向可控的流水灯功能。 ```verilog module sp6( input ext_clk_25m, // 外部输入25MHz时钟信号 input ext_rst_n, // 外部输入复位信号,低电平有效 input switch, // 拨码开关SW3输入,ON -- 低电平;OFF -- 高电平 input key_upup, // 上键按键输入,未按下为高电平,按下后为低电平 input key_down, // 下键按键输入,未按下为高电平,按下后为低电平 output reg[7:0] led // 8个LED指示灯接口 ); ``` ------------------------------------- **按键抖动判断逻辑** ```verilog wire key; // 所有按键值相与的结果,用于按键触发判断 reg[3:0] keyr; // 按键值key的缓存寄存器 assign key = key_upup & key_down; always @(posedge ext_clk_25m or negedge ext_rst_n) if (!ext_rst_n) keyr <= 4b1111; else keyr <= {keyr[2:0],key}; wire key_neg = ~keyr[2] & keyr[3]; // 按键被按下标志位 wire key_pos = keyr[2] & ~keyr[3]; // 按键释放标志位 ``` ------------------------------------- **定时计数逻辑,用于对按键的消抖判断** ```verilog reg[19:0] cnt; always @ (posedge ext_clk_25m or negedge ext_rst_n) if (!ext_rst_n) cnt <= 20b0; else if(key_pos || key_neg) cnt <= 20d0; else if(cnt < 20d999_999) cnt <= cnt + 1b1; else cnt <= 20d0; reg[1:0] key_value[1:0]; always @(posedge ext_clk_25m or negedge ext_rst_n) if (!ext_rst_n) begin key_value[0] <= 2b11; key_value[1] <= 2b11; end else if(cnt == 20d999_999) begin // 定时键值采集 key_value[0] <= {key_upup,key_down}; key_value[1] <= key_value[0]; end wire [1:0] key_press = key_value[1] & ~key_value[0]; // 消抖后按键值变化标志位 ``` ------------------------------------ **流水灯开启、停止和流动方向控制开关、按键值采集** ```verilog reg led_en; // LED流水灯工作使能信号,高电平有效 reg led_dir; // LED流水灯方向控制信号,1--从高到低流动,0--从低到高流动 always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) begin led_en <= 1b0; led_dir <= 1b0; end else begin // 流水灯开启停止控制 if(!switch[0]) led_en <= 1b1; else led_en <= 1b0; // 流水灯方向控制 if(key_press[0]) led_dir <= 1b0; //从低到高流动 else if(key_press[1]) led_dir <= 1b1; //从高到低流动 end ``` ------------------------------------ **LED流水灯变化延时计数器** ```verilog reg [23:0] delay; always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) delay <= 24b0; else delay <= delay; // 原文中的“dela”可能为笔误,这里假设是delay ```

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Spartan 6 FPGA VERILOGXilinx ISE14.6.zip
    优质
    本资源包含经典流水灯实验的VERILOG代码和Xilinx ISE14.6工程文件,适用于基于Spartan 6 FPGA的学习与开发。 Spartan 6 FPGA 设计经典流水灯实验VERILOG源码 Xilinx ISE14.6 工程文件 拨码开关SW3作为开关信号,导航按键UP和DOWN作为LED流动方向控制信号,实现8个LED开关、方向可控的流水灯功能。 ```verilog module sp6( input ext_clk_25m, // 外部输入25MHz时钟信号 input ext_rst_n, // 外部输入复位信号,低电平有效 input switch, // 拨码开关SW3输入,ON -- 低电平;OFF -- 高电平 input key_upup, // 上键按键输入,未按下为高电平,按下后为低电平 input key_down, // 下键按键输入,未按下为高电平,按下后为低电平 output reg[7:0] led // 8个LED指示灯接口 ); ``` ------------------------------------- **按键抖动判断逻辑** ```verilog wire key; // 所有按键值相与的结果,用于按键触发判断 reg[3:0] keyr; // 按键值key的缓存寄存器 assign key = key_upup & key_down; always @(posedge ext_clk_25m or negedge ext_rst_n) if (!ext_rst_n) keyr <= 4b1111; else keyr <= {keyr[2:0],key}; wire key_neg = ~keyr[2] & keyr[3]; // 按键被按下标志位 wire key_pos = keyr[2] & ~keyr[3]; // 按键释放标志位 ``` ------------------------------------- **定时计数逻辑,用于对按键的消抖判断** ```verilog reg[19:0] cnt; always @ (posedge ext_clk_25m or negedge ext_rst_n) if (!ext_rst_n) cnt <= 20b0; else if(key_pos || key_neg) cnt <= 20d0; else if(cnt < 20d999_999) cnt <= cnt + 1b1; else cnt <= 20d0; reg[1:0] key_value[1:0]; always @(posedge ext_clk_25m or negedge ext_rst_n) if (!ext_rst_n) begin key_value[0] <= 2b11; key_value[1] <= 2b11; end else if(cnt == 20d999_999) begin // 定时键值采集 key_value[0] <= {key_upup,key_down}; key_value[1] <= key_value[0]; end wire [1:0] key_press = key_value[1] & ~key_value[0]; // 消抖后按键值变化标志位 ``` ------------------------------------ **流水灯开启、停止和流动方向控制开关、按键值采集** ```verilog reg led_en; // LED流水灯工作使能信号,高电平有效 reg led_dir; // LED流水灯方向控制信号,1--从高到低流动,0--从低到高流动 always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) begin led_en <= 1b0; led_dir <= 1b0; end else begin // 流水灯开启停止控制 if(!switch[0]) led_en <= 1b1; else led_en <= 1b0; // 流水灯方向控制 if(key_press[0]) led_dir <= 1b0; //从低到高流动 else if(key_press[1]) led_dir <= 1b1; //从高到低流动 end ``` ------------------------------------ **LED流水灯变化延时计数器** ```verilog reg [23:0] delay; always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) delay <= 24b0; else delay <= delay; // 原文中的“dela”可能为笔误,这里假设是delay ```
  • 掌握Xilinx Spartan 6 FPGA.7z
    优质
    本资源为《掌握Xilinx Spartan-6 FPGA》电子书,旨在帮助工程师和学生深入了解Spartan-6 FPGA的架构、设计流程及应用开发。 Xilinx Spartan 6的学习入门资料可以帮助初学者快速掌握这一硬件描述语言及相关工具的使用方法。这些资源通常包括官方文档、教程以及社区论坛上的讨论内容,适合希望深入了解FPGA设计与开发的新手用户。
  • 基于FPGAVerilog
    优质
    本项目采用Verilog语言在FPGA平台上实现了动态流水灯效果,通过编程控制LED灯依次亮灭,展示了数字逻辑设计与硬件描述语言的应用。 使用Verilog编写的FPGA流水灯程序,软件为ISE。
  • 基于FPGAVerilog语言
    优质
    本实验采用Verilog硬件描述语言,在FPGA开发板上实现流水灯效果,通过编译和配置过程验证逻辑电路设计,增强对数字系统开发的理解。 用Verilog语言编写的流水灯程序已经在Altera Cyclone IV板子上测试成功。该程序使用了4个LED灯,并且可以自行设定流水灯流动的速度。
  • 基于Xilinx Spartan-6 XC6SLX9 FPGA的Wiznet5500网卡芯片Verilog设计
    优质
    本项目致力于在Xilinx Spartan-6 XC6SLX9 FPGA平台上实现Wiznet W5500以太网控制器的Verilog硬件描述语言编程,旨在开发一个高效、稳定的网络接口模块。 使用Xilinx Spartan-6 XC6SLX9的FPGA驱动Wiznet5500网卡芯片的Verilog设计已经完成并经过测试,可以实现数据发送和接收功能,无误。
  • Avnet Xilinx Spartan-6 FPGA LX75T 开发方案
    优质
    本开发方案采用Avnet公司的Xilinx Spartan-6 FPGA LX75T器件,提供详尽的设计指导与硬件支持,适用于嵌入式系统、工业控制及通信设备等领域。 Avnet公司的Xilinx Spartan-6 FPGA LX75T开发板采用的是Xilinx公司生产的Spartan-6 XC6SLX75T-3FGG676C型号的FPGA,适用于大规模逻辑设计、用户导向型DSP设计以及高性价比嵌入式应用领域。这类应用包括但不限于汽车娱乐系统、平板显示器、多功能打印机、机顶盒、家庭网络和视频监控等设备。本段落详细介绍了Spartan-6 FPGA LX75T开发板的主要特性,并提供了框图、详细的电路图及材料清单信息。
  • 基于FPGAVerilog与测试bench
    优质
    本项目提供了一个基于FPGA的流水灯效果的Verilog实现及其配套的测试基准文件。通过该设计可以观察LED灯条上灯光流动的效果,适用于数字逻辑课程学习和FPGA入门实践。 本段落介绍了使用Verilog代码在FPGA上实现流水灯的两种方法以及一种呼吸灯的方法,并提供了相应的测试激励文件。
  • Xilinx Spartan-6资料
    优质
    本资料涵盖Xilinx Spartan-6系列FPGA的相关信息,包括器件特性、开发工具使用及设计实例等,适合初学者和专业工程师参考。 Xilinx Spartan-6系列最新推出的低端芯片增加了Dsp处理模块。
  • XILINX Spartan6 FPGA UART 串口通信 Verilog ISE14.7 RAR包
    优质
    本资源提供XILINX Spartan6 FPGA平台下的UART串口通信Verilog源代码与ISE14.7工程文件,适用于FPGA开发学习和实践。 XILINX FPGA SPARTAN6 UART串口通信实验 VERILOG逻辑例程源码 ISE14.7工程文件 模块定义如下: ```verilog module uart_test(clk50, rx, tx, reset); input clk50; input reset; input rx; output tx; wire clk; // 用于9600波特率UART端口的时钟信号 wire [7:0] txdata,rxdata; wire idle; wire dataerror; wire frameerror; // 产生16*9600频率的时钟信号 clkdiv u0 ( .clk50 (clk50), .clkout (clk) ); uartrx u1 ( .clk (clk), .rx (rx) ); ``` 注意:原文中未提及具体联系方式或网址,因此重写内容不包含这些信息。
  • FPGA
    优质
    FPGA流水灯代码介绍了一种基于现场可编程门阵列(FPGA)实现的经典电子工程实验项目——流水灯效果。该代码通过控制LED灯串依次亮起或熄灭,展示数字逻辑设计的基本原理和时序电路的构建方法,是学习FPGA开发与硬件描述语言(如Verilog或VHDL)的理想入门案例。 适合新手入门的FPGA流水灯点亮教程使用的是EP2C5T144C8开发板,程序设计简单明了,易于理解。对于刚刚接触这一领域的学习者来说非常值得尝试。