Lattice ICE40LP8K开发
一、开发工具:
ICEcube2,界面非常原始,只有PLL IP核添加功能,其他IP核貌似只能使用primitive替换。
不支持时序分析、在线仿真等功能。
二、原语使用
全局布线资源
在 iCE40 FPGA 设备中,有 8 个高驱动缓冲器,称为全局缓冲器(Global Buffers,GBUFx),它们连接到 8 条低偏斜(low-skew)的全局线。全局缓冲器和全局线的主要设计目的是用于时钟分布,但也适用于其他高扇出信号,如复位(set/reset)和使能(enable)信号。
使用:
module top (
input wire clk_in, // 输入时钟信号
output wire clk_out // 输出经过全局缓冲器的时钟
);
wire clk_gbuf;
// 实例化全局缓冲器,将输入时钟连接到 GBUF0
SB_GB gbuf_inst (
.USER_SIGNAL_TO_GLOBAL_BUFFER(clk_in), // 用户时钟信号输入
.GLOBAL_BUFFER_OUTPUT(clk_gbuf) // 全局缓冲器输出信号
);
assign clk_out = clk_gbuf;
endmodule
高速内部晶振原语
与ICE40UP系列不一样!ICE40LP8K内部没有高速晶振,只能从外部输入
ICE40UP使用内部高速晶振primitives:
//************ intern HSOSC SETTING*************************
// Name Values Description
// CLKHF_DIV "0'b00" (default) 0'b00 = 48 MHz
// "0'b01" 0'b01 = 24 MHz
// "0'b10" 0'b10 = 12 MHz
// "0'b11" 0'b11 = 6 MHz
// HSOSC
// #(
// .CLKHF_DIV ("0b00")
// ) OSCInst0 (
// .CLKHFEN (1'b1),
// .CLKHFPU (1'b1),
// .CLKHF (CLKHF)
// );
IO原语SB_IO
CS64中使用IOB原语接受PAD信号传递到内部逻辑,ICE40LP系列该原语进行了改动和精简。使用SB_IO 替换
// 双向 I/O 使用 SB_IO 替代 BB_B
SB_IO #(
.PIN_TYPE (6'b101001),
.PULLUP (1'b1)
)U_IBUF_MISO (
.PACKAGE_PIN(SPI_MISO), // Bidirectional pin
.OUTPUT_ENABLE(s_IOL_D_PADDT), // Tri-state control
.D_OUT_0(s_IOL_D_PADDO), // Output data (synchronized output)
.D_IN_0() // Input data (if needed)
);
ram使用 SB_RAMXX
替换ICE40UP中的ram ip核,(一个开发工具,连ram ip核都不提供....)
SB_RAM256x16 Spike_Threshold_DOWN_ram_16_256 (
.RDATA(Spike_THR_L), // 读取数据输出
.RADDR(Spike_THR_DOWN_CHANNEL), // 读取地址
.RCLK(clk), // 读取时钟
.RCLKE(1'b1), // 读取时钟使能
.RE(Spike_THR_DOWN_RD_EN), // 读取使能
.WADDR(spike_thr_shift_count - 1), // 写入地址
.WCLK(clk), // 写入时钟
.WCLKE(1'b1), // 写入时钟使能
.WE(ram_wr_en_thr_down), // 写入使能
.MASK(16'b0), // 写入掩码(不使用掩码)
.WDATA(wr_spike_thr_L) // 写入数据
);
FIFO
将Radiant中生成的FIFO IP核的.v文件拉过来,在ICEcube2中可以直接使用,仿真也通过。(神奇,且无语)
FIFO_I18D1024 U_TX_BUF(
.clk_i ( SYS_CLK ),
.rst_i ( ~sys_nRst | r_FIFO_RST[7] ),
.wr_en_i ( r_TX_BUF_WEN ),
.rd_en_i ( r_TX_BUF_REN ),
.wr_data_i ( {2'b0, r_TX_BUF_WDAT[15:0]} ),
.full_o ( s_TX_BUF_FULL ),
.empty_o ( s_TX_BUF_EMPTY ),
.data_cnt_o ( s_data_cnt ),
.rd_data_o ( s_TX_BUF_RDAT[15:0] )
);
PLL
PLL IP核可以在ICEcube中调用,但是实际使用中PLL的PLACE有着限制,即不是所有IO口输入的系统时钟信号都可以(也是很无语)。
手头只有ICE5LP系列(不是ICE40LP系列!),用的内部高速晶振,后面接PLL报错...
E2694: PLL: U_system_clk_nrst_setting.PLL_SYSCLK_inst.PLL_SYSCLK_inst could not be placed E2693: PLL placement is infeasible for the design E2055: Error while doing placement of the design
后面查了下,使用限制如下:(没有提到内部产生的时钟的使用限制)
但是好在关于内部高速晶振的描述:
B_HFOSC primitive generates 48 MHz nominal clock frequency within +/- 10% variation, with user-programmable divider value of 1, 2, 4, and 8. The HFOSC can drive either the global clock network or fabric routes directly based on the clock network selection.
好像可以直接作为系统时钟使用,因此,把HFSOC后面接个SB_GB就作为系统时钟了。
SB_HFOSC OSCInst0 (
.CLKHFEN(1'b1),
.CLKHFPU(1'b1),
.CLKHF(CLKHF)
);
defparam OSCInst0.CLKHF_DIV = "0b00";
//SB_GB inst***********************************
SB_GB sys_clk_gbuf_inst (
.USER_SIGNAL_TO_GLOBAL_BUFFER(CLKHF), // clk input
.GLOBAL_BUFFER_OUTPUT(o_sys_clk) // GBUF OUT
);
三、Modelsim仿真
需要在modelsim中添加相应的ICE40LP系统的仿真库,
操作如下:
Click “Add Existing Files” and add the following files:
counter_sbt.v, sb_ice_syn.v, sb_ice_lc.v, counter_tb.vhd for Verilog post-route timing simulation
The sb_ice_syn.v, sb_ice_lc.v verilog files can be found in $INST_DIR/verilog.
If your design contains PLL, add ABIPTBS8.v in $INST_DIR/verilog.
If the design contains Hardened IP primitives, add the encrypted simulation library
sb_ice_ipenc_modelsim.v available in $INST_DIR/Verilog
添加后就可以在Modelsim中进行仿真了。
Lattice ICE40LP8K开发的更多相关文章
- FPGA - 认识FPGA
一.何为FPGA? FPGA,英文全拼:Field-Programmable Gate Array 现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集 ...
- Lattice 开发工具Diamond 相关版本下载地址
百度网盘: https://wenku.baidu.com/view/21b98975192e45361066f5f3.html 官网下载: http://www.latticesemi.com/Su ...
- 基于Lattice_CPLD/FPGA Diamond 开发流程
本文主要介绍了Lattice CPLD/FPGA集成开发环境的使用方法,并通过点亮开发板(Mach XO2 Breakout Board)上位号为D2的LED这一实例来演示其开发流程. 1. ...
- 【lattice软核】MICO8流程
The LatticeMico System software is composed of three bundled applications: Mico System Builder (MS ...
- 论文翻译——Lattice indexing for spoken term detection
第II节简要介绍与本文有关的先前工作第III节介绍文中使用的定义以及术语 第IV节介绍如何从原始ASR lattices中生成倒排索引结构 第V节详细介绍了ASR结构以及实验使用的数据 第VI节提供了 ...
- Lattice并购案和我国FPGA发展道路
引用 http://www.cnblogs.com/alifpga/p/9292588.html FPGA作为通信.航天.军工等领域的关键核心器件,是保障国家战略安全的重要支撑基础.近年来,随着数字化 ...
- Lattice并购案&我国FPGA发展路径
FPGA作为通信.航天.军工等领域的关键核心器件,是保障国家战略安全的重要支撑基础.近年来,随着数字化.网络化和智能化的发展,FPGA的应用领域得到快速扩张.美国在FPGA领域拥有绝对的垄断优势,已成 ...
- Lattice系列FPGA入门相关0(Lattice与Altera、Xilinx对比及入门)
需求说明:Lattice系统FPGA入门 内容 :Lattice与Altera.Xilinx对比 来自 :时间的诗 1.Lattice与Altera.Xilinx对比 latt ...
- 真正的RISC-V开发板——VEGA织女星开发板开箱评测
前言 由于最近ARM公司要求员工"停止所有与华为及其子公司正在生效的合约.支持及未决约定",即暂停与华为的相关合作,大家纷纷把注意力投向了另一个的处理器架构RISC-V,它是基于精 ...
- FPGA开发工具套餐搭配推荐及软件链接 (更新于2020.03.16)
一.Xilinx(全球FPGA市场份额最大的公司,其发展动态往往也代表着整个FPGA行业的动态) (1) Xilinx官方软件下载地址链接: https://china.xilinx.com/supp ...
随机推荐
- Redmi AX6000 刷 OpenWrt
一直想尝试玩玩软路由,但是家里实在没有软路由的需求,外加不知道该入手什么机器来刷软路由,所以迟迟没有入手.最近研究生要开学了,但是学校的有线网要下载专用软件认证才能上网,终于找到合适的理由入手一款软路 ...
- MySQL的索引原理及使用
MySQL中的索引模型 Mysql中的索引使用的数据结构一般为搜索树,这里的搜索树,一般使用B树,这里补一下数据结构中的B树结构:说B树之前,先顺一个前置的知识点,平衡二叉树: 平衡二叉树 二叉树应该 ...
- 为什么C++ 单例局部static初始化是线程安全的?
为什么C++ 单例局部static初始化是线程安全的? const bg::AppSettings& bg::AppSettings::GetInstance() { static AppSe ...
- JS实现树形结构数据的模糊搜索查询
简单示例: 需求:输入 "题2" 字,希望树形结构中带有 "题2" 字的项显示,即使父节点没有,但子节点含有,父节点仍要返回. let arr = [ { ti ...
- PRCV 2023:语言模型与视觉生态如何协同?合合信息瞄准“多模态”技术
PRCV 2023:语言模型与视觉生态如何协同?合合信息瞄准"多模态"技术 近期,2023年中国模式识别与计算机视觉大会(PRCV)在厦门成功举行.大会由中国计算机学会(CCF). ...
- Angular 18+ 高级教程 – 学以致用
前言 读这么多原理,到底为了什么?真实项目中真的会用得到吗? 你正在疑惑 "知识的力量" 吗? 本篇会给一个非常非常好的案例,让你感悟 -- 知识如何用于实战. 记住,我的目的是让 ...
- Vue3.5中解构props,让父子组件通信更加丝滑
前言 在Vue3.5版本中响应式 Props 解构终于正式转正了,这个功能之前一直是试验性的.这篇文章来带你搞清楚,一个String类型的props经过解构后明明应该是一个常量了,为什么还没丢失响应式 ...
- 2024年常用的Net web框架
ASP.NET Core 框架声明:是微软推出的新一代开源.跨平台的 Web 应用框架,用于构建高性能.现代化的 Web 应用程序. 官网地址:https://dotnet.microsoft.com ...
- Vue3——集成mock 模拟数据生成器
安装依赖 npm install -D mockjs vite-plugin-mock@2.9.6 在 vite.config.js 文件中引入并配置 vite-plugin-mock 插件 impo ...
- manim边学边做--图形间集合关系
几何图形间的集合关系,是数学和几何学中的一个基本概念, 通过计算不同形状(如圆形.矩形.三角形等)的交集和并集等关系,可以实现复杂的图形处理和视觉效果. manim中提供了4种计算几何形状间集合关系的 ...