www.pudn.com > hdl.rar > condata.v
/*module condata( clk16M, arst, // sel, cmdata, data, cle, datacle, ale, // re, cmdwe, datawe, start, finish, flashdata, // rd, wr, fcle, fale // sign ); input clk16M, arst, // sel, cle, datacle, ale, // re, cmdwe, datawe, start, finish; input [7:0] cmdata, data; output [7:0] flashdata; output // rd, wr, fcle, fale; // sign; reg // rd, // retemp, wr, fcle, fale, // sign, // rdposedge, mux; reg [7:0] datatemp; wire [7:0] muxdata; // rdata; wire wetemp, cletemp; always @(posedge clk16M or negedge arst) begin if(arst == 0) begin mux <= 1'b0; end else begin if(start == 1) mux <= 1'b0; else if(finish == 1) mux <= 1'b1; end end assign muxdata = (mux == 0)? cmdata : data; assign wetemp = cmdwe & datawe; assign cletemp = cle | datacle; always @(posedge clk16M or negedge arst) begin if(arst == 0) begin //rd <= 1'b1; //retemp <= 1'b1; wr <= 1'b1; fcle <= 1'b0; fale <= 1'b0; datatemp <= 8'd0; end else begin //rd <= re; //retemp <= rd; wr <= wetemp; fcle <= cletemp; fale <= ale; datatemp <= muxdata; end end*/ /* always @(posedge clk16M or negedge arst) begin if(arst == 0) begin rdposedge <= 1'b0; end else begin if(~retemp & rd) rdposedge <= 1'b1; end end*/ //assign flashdata = datatemp;//(sel)? 8'dz : datatemp; //assign rdata = (~retemp & rd)? flashdata : 8'dz; /* always @(posedge clk16M or negedge arst) begin if(arst == 0) begin sign <= 1'b1; end else begin sign <= flashdata[0]; end end */ //endmodule module condata( clk24M, arst, cmdwe, cmdale, cmdcle, cmdata, sel, datawe, datacle, flashdata, we, ale, cle, data ); input clk24M, arst, cmdwe, cmdale, cmdcle, sel, datawe, datacle; input [7:0] cmdata, flashdata; output we, ale, cle; output [7:0] data; reg [7:0] data; reg we, cle, ale; always @(posedge clk24M or negedge arst) begin if(arst == 0) begin data <= 8'd0; end else begin if(sel) begin data <= flashdata; end else begin data <= cmdata; end end end always @(posedge clk24M or negedge arst) begin if(arst == 0) begin we <= 1'b1; cle <= 1'b0; ale <= 1'b0; end else begin we <= cmdwe & datawe; ale <= cmdale; cle <= cmdcle | datacle; end end /*assign we = cmdwe & datawe; assign ale = cmdale; assign cle = cmdcle | datacle;*/ endmodule