📄 signal.v
字号:
`timescale 1ns/1ns`define timeslice 200module Signal(RESET,CLK,RD,WR,ADDR,ACK,DATA);output RESET;output CLK;output RD,WR;output[10:0]ADDR;input ACK;inout[7:0] DATA;reg RESET;reg CLK;reg RD,WR;reg W_R;reg[10:0]ADDR;reg[7:0]data_to_eeprom;reg[10:0]addr_mem[0:255];reg[7:0] data_mem[0:255];reg[7:0] ROM[0:2047];integer i,j;integer OUTFILE;assign DATA=(W_R)?8'bz:data_to_eeprom; //?????//-----??????-----always#(`timeslice/2)CLK=~CLK;//-----??????----initial begin RESET=1; i=0; j=0; W_R=0; CLK=0; RD=0; WR=0; #1000; RESET=0; repeat(15) begin #(5*`timeslice); WR=1; #(`timeslice); WR=0; @(posedge ACK);//dengdai gao dianping de daolai end #(10*`timeslice); W_R=1; repeat(15) begin #(5*`timeslice) RD=1; #(`timeslice); RD=0; @(posedge ACK); end end //-------xie caozuo--- initial begin $display("writing---writing---writing---writing"); #(2*`timeslice); for(i=0;i<=15;i=i+1) begin ADDR=addr_mem[i]; data_to_eeprom=data_mem[i]; $fdisplay(OUTFILE,"@%0h %0h",ADDR,data_to_eeprom); @(posedge ACK); end end //------???----initial @(posedge W_R) begin ADDR=addr_mem[0]; $fclose(OUTFILE); $readmemh("./eeprom.dat",ROM);// ba shuju wenjian de shuju du dao ROM zhongqu $display("Begin READING---READING---READING---READING"); for(j=0;j<=15;j=j+1) begin ADDR=addr_mem[j]; @(posedge ACK); if(DATA==ROM[ADDR]) $display("DATA %0h==ROM[%0h]---READ RIGHT",DATA,ADDR); else $display("DATA %0h!=ROM[%0h]---READ WRONG",DATA,ADDR); end endinitial begin OUTFILE=$fopen("./eeprom.dat"); $readmemh("./addr.dat",addr_mem); $readmemh("./data.dat",data_mem); endendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -