ADC0809的FPGA驱动程序(verilog)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

module ADC0809_driver(clk_500kHz,rst_n,EOC,START,OE,ALE,ADDA,DATA,DATA_R);

input EOC,clk_500kHz,rst_n;

input[7:0] DATA;

output reg START,OE,ALE,ADDA;

output reg [7:0] DATA_R;

reg[4:0] CS,NS;

parameter

IDLE=5'b00001,

START_H=5'b00010,

START_L=5'b00100,

CHECK_END=5'b01000,

GET_DATA=5'b10000;

always @(posedge clk_500kHz)

case(CS)

IDLE:

NS=START_H;

START_H:

NS=START_L;

START_L:

NS=CHECK_END;

CHECK_END:

if(EOC)

NS=GET_DATA;

else

NS=CHECK_END;

GET_DATA:

NS=IDLE;

default:

NS=IDLE;

endcase

always @(posedge clk_500kHz)

if(!rst_n)

CS<=IDLE;

else

CS<=NS;

always @(posedge clk_500kHz)

case(NS)

IDLE:

begin

OE<=0;

START<=0;

ALE<=0;ADDA<=1;

end

START_H:

begin

OE<=0;

START<=1;

ALE<=1;

ADDA<=1;

end

START_L:

begin

OE<=0;

START<=0;

ALE<=1;

end

CHECK_END:

begin

OE<=0;

START<=0;

ALE<=0;

end

GET_DATA:

begin

OE<=1;

DATA_R<=DATA;

START<=0;

ALE<=0;

end

default:

begin

OE<=0;

START<=0;

ALE<=0;

ADDA<=0;

end

endcase

endmodule

相关文档
最新文档