
FPGA SD卡读写测试实验 Verilog代码及Quartus项目文件+文档说明.zip
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本资源包含用于FPGA上SD卡读写的Verilog代码和Quartus项目文件,附带详细的实验文档说明,适合进行相关硬件设计与验证的学习者使用。
FPGA读写SD卡测试实验 Verilog逻辑源码及Quartus工程文件文档说明:使用Cyclone4E系列中的EP4CE6F17C8 FPGA型号,Quartus版本为17.1。
Verilog模块定义如下:
```verilog
module sd_card_test(
input clk,
input rst_n,
input key1,
output SD_nCS,
output SD_DCLK,
output SD_MOSI,
input SD_MISO,
output [5:0] seg_sel,
output [7:0] seg_data
);
parameter S_IDLE = 0;
parameter S_READ = 1;
parameter S_WRITE = 2;
parameter S_END = 3;
reg[3:0] state;
wire sd_init_done;
reg sd_sec_read;
wire[31:0] sd_sec_read_addr;
wire[7:0] sd_sec_read_data;
wire sd_sec_read_data_valid;
wire sd_sec_read_end;
reg sd_sec_write;
wire[31:0] sd_sec_write_addr;
reg [7:0] sd_sec_write_data;
wire sd_sec_write_data_req;
wire sd_sec_write_end;
reg[9:0] wr_cnt;
reg[9:0] rd_cnt;
wire button_negedge;
reg[7:0] read_data;
// debounce module instantiation
ax_debounce ax_debounce_m0(
.clk (clk),
.rst (~rst_n),
.button_in (key1),
.button_posedge (),
.button_negedge (button_negedge)
);
wire[6:0] seg_data_0;
seg_decoder seg_decoder_m0(
.bin_data(read_data[3:0]),
.seg_data(seg_data_0)
);
wire[6:0] seg_data_1;
seg_decoder seg_decoder_m1(
.bin_data (read_data[7:4]),
.seg_data (seg_data_1)
);
// seven segment display scan module instantiation
seg_scan seg_scan_m0(
.clk(clk),
.rst_n(rst_n),
.seg_sel(seg_sel),
.seg_data(seg_data),
.seg_data_0({1b1,7b1111_111}),
.seg_data_1({1b1,7b1111_111}),
.seg_data_2({sd_init_done, seg_data_0})
);
always@(posedge clk or negedge rst_n) begin
if(rst_n == 0)
wr_cnt <= 9d0;
```
以上是模块的定义和初始化部分,描述了SD卡读写测试实验中所使用的Verilog代码框架。其中包含了状态机的状态参数、信号声明以及按键去抖动处理等逻辑设计,并且引入了一些辅助模块如七段数码管显示扫描器和数据解码器以实现数据显示功能。
全部评论 (0)


