微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 夏宇闻那本书的EEPROM程序 感觉程序根本就不能进入读操...

夏宇闻那本书的EEPROM程序 感觉程序根本就不能进入读操...

时间:10-02 整理:3721RD 点击:
`timescale 1ns/1ns
`define timeslice 100
module EEPROM(scl,sda);
input scl;//串行时钟线
inout sda;//串行数据线
reg out_flag;//sda数据输出的控制信号
reg[7:0] memory[2047:0];
reg[10:0] address;
reg[7:0] memory_buf;
reg[7:0] sda_buf;//sda数据输出寄存器
reg[7:0] shift;//sda数据输入寄存器
reg[7:0] addr_byte;//eeprom存储单元地址寄存器
reg[7:0] ctrl_byte;//控制字寄存器
reg[1:0] State; //状态寄存器
integer i;
parameter        r7=8'b10101111,w7=8'b10101110,//main7
                r6=8'b10101101,w6=8'b10101100,//main6
                r5=8'b10101011,w5=8'b10101010,//main5
                r4=8'b10101001,w4=8'b10101000,//main4
                r3=8'b10100111,w3=8'b10100110,//main3
                r2=8'b10100101,w2=8'b10100100,//main2
                r1=8'b10100011,w1=8'b10100010,//main1
                r0=8'b10100001,w0=8'b10100000;//main0
assign sda=(out_flag==1)?sda_buf[7]:1'bz;
//寄存器和存储器初始化
initial
begin
addr_byte=0;
ctrl_byte=0;
out_flag=0;
sda_buf=0;
State=2'b00;
memory_buf=0;
address=0;
shift=0;
for(i=0;i =0;i=i-1)
                begin
                @(negedge scl);
                #`timeslice;
                sda_buf=sda_buf<<1;
                end
        @(negedge scl) #`timeslice sda_buf[7]=1;//非应答信号输出
        @(negedge scl) #`timeslice out_flag=0;
        end
endtask
endmodule
//eeprom.v文件结束

我都程序在这看不懂 ,你看明白了吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top