ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1148654 Топик полностью
mse homjak (24.11.2021 13:47, просмотров: 287) ответил Mahagam на там тактовые из делителей сделаны. остальное фигня.
Не вижу проблемы на этих частотах. Оно всё синхронное по mclk. Интересно другое. Немного переписал, чтобы найти добавку, которая из рабочего варианта делает нерабочий. Оказалось, сдвиговый регистр передатчика. 
TXsyncro txs(div10clk,nTXstart,gate485,TXclk,mclk);
/* 
reg[10:0] TXbuffer;            //если раскомментировать, то крэшится
always@(posedge TXclk or negedge nTXstart)
if(nTXstart==0)
TXbuffer[10:0]<={1'b1,data[7:0],1'b0,1'b1};
else
TXbuffer[10:0]<={1'b1,TXbuffer[10:1]};
assign serDAT=TXbuffer[0];
*/
endmodule
module TXsyncro(div10clk
,nTXstart
,gate485,TXclk
,mclk
);
input div10clk,mclk;
input nTXstart;
output gate485,TXclk;
wire div10clk,mclk;
wire nTXstart;
wire TXclk;
assign TXclk=baudes[0];
reg [4:0] baudes;
always@(posedge div10clk or negedge nTXstart)
if(nTXstart==0)
baudes<=0;
else
if(baudes==22)
baudes<=baudes;
else
baudes<=baudes+1;

reg gate485;
always@(posedge mclk)
if(baudes<22)
gate485<=1;
else
gate485<=0;

endmodule