新手小白自己写的一个小代码,实际测试完毕,第一次写有什么写的不好的地方大神们多多关照,功能如题。
/*reg:synthesis noptune*/
/*wire:synthesis keep*/
module AD_module
(
//输入端
input [7:0] AD_data_in, //输入AD转换完成数据进行处理
input CLK_50M, //主时钟输入
input CLK_1M, //AD0809主频
input RET, //复位信号输入
input EOC, //转换结束信号标志位,当转换结束时为高,开始转换时为低
input data_sync, //数据标志位,沟通串口和AD的数据同步
//输出端
output [7:0] AD_data_out, //输出处理完的数据
output OE, //AD输出使能端
output read_clk, //AD转换时钟
output STR //AD转换启动信号输出端
//output ALE //AD地址锁存允许信号输出端
);
//
//--内部参数定义
parameter set_time_200ns = 4'd10; //定义ST端口最小延时200ns
parameter set_time_400ns = 5'd20; //定义ST端口周期延时400ns
reg [1:0] detect_edge; //定义延边检测寄存器,记录EOC端的电平变化情况
wire [1:0] detect_edge_n; //定义延边检测寄存器的下一个状态
reg [4:0] time_cnt_st; //定义时间寄存器,记录-st端高电平-定时时间
reg [4:0] time_cnt_st_n; //定义时间寄存器的下一个状态
wire [15:0]data_temp; //定义数据缓存器,缓存正在处理的数据
reg [4:0] OE_time_cnt; //定义O