- 论坛徽章:
- 3
|
接口电路:
cpld端接口电路的verilog描述大致:
- module parse(clk10M,nrst,sig,data,t,head);
- input clk10M,nrst,sig;
- output data,t,head;
- reg data,t,head;
- reg sig1,sig2,sig3;
- reg[5:0] count_high;
- always@(negedge clk10M or negedge nrst)
- if(!nrst)
- begin
- sig1 <= 1'b0;
- sig2 <= 1'b0;
- sig3 <= 1'b0;
- end
- else
- begin
- sig1 <= sig;
- sig2 <= sig1;
- sig3 <= sig2;
- end
- wire sig_posedge = sig & sig1 & !sig2 & !sig3;
- wire sig_negedge = !sig & !sig1 & sig2 & sig3;
- always@(negedge clk10M or negedge nrst)
- if(!nrst)
- begin
- count_high <= 0;
- end
- else
- begin
- if(sig_negedge)
- count_high <= 0;
- else if(sig_posedge)
- count_high <= 1;
- else if((|count_high) & !(&count_high))
- count_high <= count_high + 1;
- end
- always@(negedge clk10M or negedge nrst)
- if(!nrst)
- begin
- head <= 1'b0;
- t <= 1'b0;
- end
- else
- begin
- if(sig_negedge)
- begin
- head <= &count_high;/*>6.4us*/
- t <= ~t;
- if(count_high > 35 && count_high < 55)/*3.5us~5.5us*/
- begin
- data <= 1'b1;
- end
- else if(count_high > 5 && count_high < 20)/*0.5us~2.0us*/
- begin
- data <= 1'b0;
- end
- end
- end
- endmodule
复制代码 |
|