cyclone4 FPGA读写片内ROM读写测试 Verilog逻辑源码Quartus工程文件+文档说明,FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。 module rom_test( input clk, //50MHz时钟 input rst_n //复位信号,低电平有效 ); //----------------------------------------------------------- reg[4:0] rom_addr; //ROM输入地址 wire[7:0] rom_data; //ROM的数据 //产生ROM地址读取数据测试 always @(posedge clk or negedge rst_n) if(rst_n==1'b0) rom_addr <= 10'd0; else rom_addr <= rom_addr+1'b1; //----------------------------------------------------------- //实例化ROM rom_ip rom_ip_inst ( .clock (clk ), // input clock .address (rom_addr ), // input [4 : 0] address .q (rom_data ) // output [7 : 0] q );
STC89c52内部EEPROM读写测试(硬件测试成功)/*P0口接LED.测试时先写入STC内部的EEPROM,然后将MAIN()中的初始化子函数init()注释掉. 1、STC单片机必须以扇区512个字节擦除 2、写的时候,不同的型号起始地址不同,你注意查阅手册! STC89C52 EEPROM 总大小 4k Byte;分 8 扇区;每扇区 512 Byte 第1扇区 0x2000 - 0x21FF 第2扇区 0x2200 - 0x23FF 第3扇区 0x2400 - 0x25FF 第4扇区 0x2600 - 0x27FF 第5扇区 0x2800 - 0x29FF 第6扇区 0x2A00 - 0x2BFF 第7扇区 0x2C00 - 0x2DFF 第8扇区 0x2E00 - 0x2FFF */
2021-04-28 22:26:00 23KB STC 89C52 STC单片机内部EEPROM
1
FPGA片内ROM读写测试Verilog逻辑源码Quartus工程文件+文档说明,ALTERA 在 Quartus 软件里为我们已经提供了 ROM 的 IP 核, 我们只需通过 IP 核例化一个 ROM, 根据 ROM 的读时序来读取 ROM 中存储的数据。实验中会通过 Quartus 集成的在线逻辑分析仪Signaltap,我们可以观察 ROM 的读时序和从 ROM 中读取的数据,FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。 timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// module rom_test( input clk, //50MHz时钟 input rst_n //复位信号,低电平有效 ); //----------------------------------------------------------- reg[4:0] rom_addr; //ROM输入地址 wire[7:0] rom_data; //ROM的数据 //产生ROM地址读取数据测试 always @(posedge clk or negedge rst_n) if(rst_n==1'b0) rom_addr <= 10'd0; else rom_addr <= rom_addr+1'b1; //----------------------------------------------------------- //实例化ROM rom_ip rom_ip_inst ( .clock (clk ), // input clock .address (rom_addr ), // input [4 : 0] address .q (rom_data ) // output [7 : 0] q ); endmodule
E2PROM读写测试Verilog HDL设计Quartus工程文件,E2POM型号AT24C16,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module e2prom_top( input sys_clk , //系统时钟 input sys_rst_n , //系统复位 //eeprom interface output iic_scl , //eeprom的时钟线scl inout iic_sda , //eeprom的数据线sda //user interface output led //led显示 ); //parameter define parameter SLAVE_ADDR = 7'b1010000 ; //器件地址(SLAVE_ADDR) parameter BIT_CTRL = 1'b1 ; //字地址位控制参数(16b/8b) parameter CLK_FREQ = 26'd50_000_000; //i2c_dri模块的驱动时钟频率(CLK_FREQ) parameter I2C_FREQ = 18'd250_000 ; //I2C的SCL时钟频率 parameter L_TIME = 17'd125_000 ; //led闪烁时间参数 //wire define wire dri_clk ; //I2C操作时钟 wire i2c_exec ; //I2C触发控制 wire [15:0] i2c_addr ; //I2C操作地址 wire [ 7:0] i2c_data_w; //I2C写入的数据 wire i2c_done ; //I2C操作结束标志 wire i2c_ack ; //I2C应答标志 0:应答 1:未应答 wire i2c_rh_wl ; //I2C读写控制 wire [ 7:0] i2c_data_r; //I2C读出的数据 wire rw_done ; //E2PROM读写测试完成 wire rw_result ; //E2PROM读写测试结果 0:失败 1:成功 //***************************************************** //** main code //***************************************************** //e2prom读写测试模块 e2prom_rw u_e2prom_rw( .clk (dri_clk ), //时钟信号 .rst_n (sys_rst_n ), //复位信号 //i2c interface .i2c_exec (i2c_exec ), //I2C触发执行信号 .i2c_rh_wl (i2c_rh_wl ), //I2C读写控制信号 .i2c_addr (i2c_addr ), //I2C器件内地址 .i2c_data_w (i2c_data_w), //I2C要写的数据 .i2c_data_r (i2c_data_r), //I2C读出的数据 .i2c_done (i2c_done ), //I2C一次操作完成 .i2c_ack (i2c_ack ), //I2C应答标志 //user interface .rw_done (rw_done ), //E2PROM读写测试完成 .rw_result (rw_result ) //E2PROM读写测试结果 0:失败 1:成功 ); //i2c驱动模块 i2c_dri #( .SLAVE_ADDR (SLAVE_ADDR), //EEPROM从机地址 .CLK_FREQ (CLK_FREQ ), //模块输入的时钟频率