Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
input SDI;
input SCLK;
input CS;
input DATA_LATCH;
input [7:0]PD_IN;
output SDO;
output [7:0]PD_OUT;
output D_READY;
input READY_R;
reg [7:0] SHIFT_REG;
reg [7:0] PD_OUT_REG;
reg [7:0] PD_IN_REG;
reg TEMP_SDI_TRIG;
reg D_RDY;
reg FLAG_COPY_SHIFT;
assign SDO = SHIFT_REG[7];
assign PD_OUT = SHIFT_REG; // PD_IN_REG; // SHIFT_REG; //PD_OUT_REG;
assign D_READY = D_RDY;
always @(posedge DATA_LATCH)
PD_IN_REG = PD_IN;
always @(negedge CS)
SHIFT_REG = PD_IN_REG; // по \_CS копир из парал.рег в сдвиг
always @(negedge SCLK )
SHIFT_REG = {SHIFT_REG[6:0], TEMP_SDI_TRIG};
always @(posedge SCLK) // выборка
TEMP_SDI_TRIG = SDI;
always @(posedge READY_R or posedge CS)begin // CS ___---
if( READY_R ) D_RDY=0;
else D_RDY=1;
if (CS) PD_OUT_REG = SHIFT_REG;
end
endmodule