基于FPGA的flash分区实现多功能转换(icap核)
转至:https://blog.csdn.net/Headogerz/article/details/82251621
1.前文提到通过硬件代码描述可以将程序固化到flas中,但是只能实现单一功能,无法实现多功能切换。本文通过调用ise的ip核,固化代码实现流水灯与呼吸灯的切换。
2.这次的联系,主要是为了下次的在线升级的多种功能综合做铺垫。如果只是为了实现这种转换,利用状态机也可以实现,icap可以将flash实现功能分离。实现多个功能不在需要下载器下载。
3.练习代码如下:
module icap_ctrl(input wire sclk,input wire rst_n,input wire key_in
);reg [3:0] cnt;
reg ce;
reg [15:0] tmp_i;
wire [15:0] i_data;always@(posedge sclk or negedge rst_n) //cnt14if(!rst_n)cnt<=4'd0;else if(cnt==14)cnt<=4'd0;else if (ce==0)cnt<=cnt+1'b1;always@(posedge sclk or negedge rst_n) //ceif(!rst_n)ce<=1'b1;else if(cnt==14)ce<=1'b1;else if (key_in==1)ce<=1'b0;always@(posedge sclk or negedge rst_n)if(!rst_n)tmp_i<=16'hffff;else case(cnt)0: tmp_i<=16'hffff;1: tmp_i<=16'haa99;2: tmp_i<=16'h5566;3: tmp_i<=16'h3261;4: tmp_i<=16'h0000; //5: tmp_i<=16'h3281;6: tmp_i<=16'h0300; //7: tmp_i<=16'h32a1;8: tmp_i<=16'h0000; //9: tmp_i<=16'h32c1;10: tmp_i<=16'h030b; //11: tmp_i<=16'h30a1;12: tmp_i<=16'h000e;13: tmp_i<=16'h2000;14: tmp_i<=16'hffff;default: tmp_i<=16'hffff;endcase
assign i_data={tmp_i[8],tmp_i[9],tmp_i[10],tmp_i[11],tmp_i[12],tmp_i[13],tmp_i[14],tmp_i[15],tmp_i[0],tmp_i[1],tmp_i[2],tmp_i[3],tmp_i[4],tmp_i[5],tmp_i[6],tmp_i[7]};ICAP_SPARTAN6 #(.DEVICE_ID(28'h4000093), // Specifies the pre-programmed Device ID value.SIM_CFG_FILE_NAME("NONE") // Specifies the Raw Bitstream (RBT) file to be parsed by the simulation// model
)
ICAP_SPARTAN6_inst (.BUSY(), // 1-bit output: Busy/Ready output.O(), // 16-bit output: Configuartion data output bus.CE(ce), // 1-bit input: Active-Low ICAP Enable input.CLK(sclk), // 1-bit input: Clock input.I(i_data), // 16-bit input: Configuration data input bus.WRITE(1'b0) // 1-bit input: Read/Write control input
);endmodule
基于FPGA的flash分区实现多功能转换(icap核)相关推荐
- esp32 Flash分区与OTA功能简析
升级功能对于所有的嵌入式产品都是非常重要的.尤其是当产品量产/销售阶段,已经没有条件让厂家对产品升级,因此升级方式的设计必须防呆防错以及稳定. 乐鑫ESP32作为蓝牙WIFI合一的物联网芯片,开发成产 ...
- 基于 FPGA 实现滑动显示、多功能数字时钟【设置年月日时分秒以及闹钟】
目录 一.数码管原理 二.基础篇 2.1 原理及代码 2.2 验证结果 三.进阶篇 3.1 原理及代码 3.2 验证结果 四.数字时钟 4.1 原理及代码 4.2 验证结果 本文内容:基于 FPGA ...
- flash 怎么擦掉fpga_基于FPGA的flash板卡程序擦除与固化
1.擦除程序,程序擦除是可以用软件,但本文主要讨论用代码实现擦除.擦除已经固化好的程序需要对flash芯片(M25P94)的时序进行描述.时序原理如图所示: 这里主要是对flash的前8个扇区进行擦除 ...
- 基于FPGA状态机的自动售货机功能实现
用FPGA制作一个简单的自动售货机 这篇博客讲了如何用FPGA模拟实现自动售卖机的功能. 文章目录 用FPGA制作一个简单的自动售货机 1. 程序功能和总体框架详解 2.Divider分频模块 3.D ...
- 七、基于FPGA的Flash控制器设计
根据项目需求,设计一个Flash控制器.以便将完成低速数据的存储.Flash选用了S25FL032.使用单线SPI接口,接线如图: 1,Flash S25fl032介绍 1.1 IO描述 1.2 相关 ...
- 基于FPGA的电子密码锁
基于FPGA的电子密码锁 实现的功能: 1. 设计制作一个数字密码锁,共有8位密码,要求该密码是字母与数字的结合.输入密码由LCD显示 2. 系统上电后,8位初始密码为0000_0000. 3. 输入 ...
- 基于FPGA的智力抢答器设计
配套FPGA开发板(含该设计的工程代码):https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-4676525296.4.6e8950ed57YPh ...
- Vivado环境下基于FPGA的IP实现FFT变换
这里写自定义目录标题 环境 层次结构 仿真 实现 HDL 顶层文件 仿真文件 dds文件 IP配置 FFT ROM COE文件生成 reference 环境 Vivado Modelsim 仿真 层次 ...
- 基于FPGA的SPI FLASH控制器设计
1.SPI FLASH的基本特征 本文实现用FPGA来设计SPI FLASH,FLASH型号为W25Q128BV.支持3种通信方式,SPI.Dual SPI和Quad SPI.FLASH的存储单元无法 ...
最新文章
- linux系统中的目录讲解
- Java系列:《Java核心技术 卷一》学习笔记,chapter11 记录日志
- .net中的mapinfo开发:准备(一)
- 真快!10秒内将k8s集群运行起来
- Event Recommendation Engine Challenge(基础版)---代码
- 计算机英语一级考试试题,全国计算机一级考试试题及答案
- 为什么越有钱的人负债越多?
- nyoj 86 找球号(一)
- 电脑进不了系统怎么重装系统win11
- paypal html5 支付,H5网站接入Paypal支付接口
- excel表格的边框线怎么去除html,在EXCEL中如何去掉表头的边框线
- 《Walden》单词词频统计
- 推荐几个高效文章搜索网站
- html网页页面显示不正常原因,网页不能正常显示css是什么原因?
- Spring Boot入门系列(六)Spring Boot如何使用Mybatis XML 配置版【附详细步骤】
- 高中数学40分怎么办_新高一第一次考试数学只考了40分,还有救吗?
- 什么样的女人适合嫁给男博士 ?
- java实现百度人脸识别API(SpringBoot集成)
- matlab 读指定字符,Matlab 文件读写(I/O)和字符串操作常用命令
- 智能家居远程监控系统的设计及实现
热门文章
- 【语音增强论文解读 02】DCCRN: Deep Complex Convolution Recurrent Network for Phase-AwareSpeech Enhancement
- 磁带机LTO类型简单介绍(Tape drive LTO type)
- java zip 压缩乱码_java实现zip压缩中文文件名乱码怎么办?
- B/S中的三层架构和MVC设计模型
- springboot配置文件注入方式一--bunny0728
- SPSS学习笔记——验证性因子分析
- 学习笔记5--高精地图技术
- 转载:不可不知的端午习俗
- r5 5600u和锐龙r5 4500u的区别
- 创建符合MMdetection要求的训练数据集