spi_mem_programmer

所属分类:VHDL/FPGA/Verilog
开发工具:Verilog
文件大小:12KB
下载次数:1
上传日期:2022-11-05 12:31:31
上 传 者sh-1993
说明:  Verilog中的小型(Q)SPI闪存编程器
(Small (Q)SPI flash memory programmer in Verilog)

文件列表:
LICENSE (1071, 2022-11-05)
Makefile (267, 2022-11-05)
checksums.txt (75, 2022-11-05)
clk_for_spi.v (2337, 2022-11-05)
defs.vh (475, 2022-11-05)
get_mem_model.sh (377, 2022-11-05)
impl.sh (76, 2022-11-05)
impl.tcl (704, 2022-11-05)
mem_Q128_bottom.vmf (40, 2022-11-05)
n25q_force.patch (655, 2022-11-05)
qspi_mem_controller.v (7564, 2022-11-05)
sfdp.vmf (29, 2022-11-05)
sim_iverilog.sh (388, 2022-11-05)
sim_vivado.prj (456, 2022-11-05)
sim_vivado.sh (184, 2022-11-05)
spi_cmd.v (3398, 2022-11-05)
testbench.v (1109, 2022-11-05)
top.v (4915, 2022-11-05)
top.xdc (1742, 2022-11-05)

## Small (Q)SPI flash memory programmer in Verilog Targets N25Q128 memory, adaptable to other ones. Can read memory chip ID, enable quad SPI mode, disable write protection, erase sectors, do bulk erase, program pages and poll the status register. ### Implementation `top.v` can be used to implement a minimal test design for a Xilinx FPGA (tested on Artix); STARTUPE2 primitive is used to talk to the boot memory of the FPGA. `top.xdc` are the constraints to use together. Configured to run from 100 MHz external clock converting it to 40 MHz for SPI; indicates the test progress using 2 LEDs. Use `impl.sh` to run the implementation with Vivado. ### Simulation `testbench.v` wraps `top.v` for a simulation with the Verilog model of the memory. `sim_iverilog.sh` runs the simulation with [Icarus Verilog](https://github.com/steveicarus/iverilog); `sim_vivado.sh` runs the Xilinx Vivado simulator. #### Requirements: - use `get_mem_model.sh` to download and prepare memory model files for [N25Qxxx](https://www.micron.com/~/media/documents/products/sim-model/nor-flash/serial/bfm/n25q/n25q128a13e_3v_micronxip_vg12,-d-,tar.gz); `N25Qxxx.v` will be [patched](https://github.com/steveicarus/iverilog/issues/131) - Xilinx primitives Verilog model files from Vivado (see `sim_iverilog.sh`) ### TODO - the 256-byte wide data interface is definitely inoptimal for implementation (though it works) and should be replaced with something more reasonable - add other memory models

近期下载者

相关文件


收藏者