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 ...
随机推荐
- Linux命令cURL详解,并实现文件定时上传到ftp服务器的程序
前言 前段时间群里讨论,想实现某个文件定时上传到服务器要怎么来实现.我记得之前做过 一个项目:为高通的iot模组编写FOTA功能:实现模组可以远程下载升级镜像包,实现版本升级功能.并当时使用的一个超级 ...
- fofa开放免费教育账号类比专业账号!
用户须知 1.免责声明:本教程作者及相关参与人员对于任何直接或间接使用本教程内容而导致的任何形式的损失或损害,包括但不限于数据丢失.系统损坏.个人隐私泄露或经济损失等,不承担任何责任.所有使用本教程内 ...
- ArcGIS创建渔网工具的使用方法
本文介绍在ArcMap软件中,通过"Create Fishnet"工具创建渔网,从而获得指定大小的矢量格网数据的方法. 首先,我们在创建渔网前,需要指定渔网覆盖的范围.这里 ...
- Linux 常见编辑器
命令行编辑器 Vim Linux 上最出名的编辑器当属 Vim 了.Vim 由 Vi 发展而来,Vim 的名字意指 Vi IMproved,表示 Vi 的升级版.Vim 对于新手来说使用比较复杂,不过 ...
- Windows 设置 FRP 自动启动
由于 frps/frpc 不是 Windows 服务应用程序,因此我们不能直接使用 New-Service 命令创建 frps/frpc 服务.我们可以使用下面的方法将 frps/frpc 封装为 W ...
- Kubelet证书自动续签(为 kubelet 配置证书轮换)
1.概述 Kubelet 使用证书进行 Kubernetes API 的认证. 默认情况下,这些证书的签发期限为一年,所以不需要太频繁地进行更新. Kubernetes 包含特性 Kubelet 证书 ...
- CSS 实现滑动整个元素
其实没什么难点,主要就是两个CSS属性 scroll-snap-type 这个是作用在包裹容器身上的. scroll-snap-align 这个是作用在被包裹容器身上的. 效果如下图所示: 代码如下: ...
- 18 Python如何操作文件?
本篇是 Python 系列教程第 18 篇,更多内容敬请访问我的 Python 合集 1 打开文件 通常使用内置的 open(文件路径, 模式, encoding="utf-8") ...
- 聊聊 iframe, CSP, 安全, 跨域
refer : https://www.cnblogs.com/kunmomo/p/12131818.html (跨域) https://segmentfault.com/a/119000000450 ...
- 我发布了一款相亲平台《i相遇》
因缘际会之下,我踏入了相亲平台的领域.起初,是为一位客户打造专属相亲应用,过程中深入体验了众多同类平台,却遗憾地发现它们普遍掺杂着欺诈的阴影--高昂的费用.兼职托儿的身影.以及虚假的钓鱼信息,不一而足 ...