C
caosmaker
Guest
Oi a todos ...
Eu sou novo em CPLD e Verilog.Estou trabalhando em um CPLD fazer ciclo de sinais baseado em um 50Hz e 10KHz fontes externas e controlada thrue um registo spi.
Pelo menos, eu acho, o SPI deve ser fácil, mas eu tenho um problema estranho:
Tenho feito um registo SPI, e construído como biblioteca.Se eu verificar se a sintaxe está tudo ok, mas quando eu compilo o i CPLD ter esse erro:Analisando módulo <dutyCycle> na biblioteca <work>.ERRO: XST: 899 - "dutyCycle.v line" 46: A lógica para <tmp> não corresponder a um conhecido ou FF trava modelo.
O estilo de descrição que você está usando para descrever um registo ou trava não é suportado na versão atual do software.Aqui o código:
Código:
dutyCycle (módulo
fduty entrada, / / 10KHz
fbase de entrada / 50Hz
SDI, / / Serial Data Input
input clk, / / Serial Clock
ss entrada, / / Serial Selecione
saída dever, / / Uscita Ciclo!
sdo saída / / Output de dados de série
);reg [7:0] tmp;
reg [7:0] mybyte;
reg [7:0] contador;
dutybit reg;
reg um;always @ (clk posedge ou posedge ss)
começo
if (SS)
começo
mybyte <= tmp;
fimif (clk () & & (ss == 0))
começo
tmp = (tmp [6:0], sdi);
fim
fim
atribuir sdo = tmp [7];always @ (fduty posedge)
começo
if (contador! = 100)
counter = counter 1;
diferente
dutybit = 1;
fimalways @ (fbase posedge)
começo
counter = 0;
dutybit = 0;
fimalways @ (fbase negedge)
começo
counter = 0;
dutybit = 0;
fimatribuir direito = dutybit;
endmodule
Eu sou novo em CPLD e Verilog.Estou trabalhando em um CPLD fazer ciclo de sinais baseado em um 50Hz e 10KHz fontes externas e controlada thrue um registo spi.
Pelo menos, eu acho, o SPI deve ser fácil, mas eu tenho um problema estranho:
Tenho feito um registo SPI, e construído como biblioteca.Se eu verificar se a sintaxe está tudo ok, mas quando eu compilo o i CPLD ter esse erro:Analisando módulo <dutyCycle> na biblioteca <work>.ERRO: XST: 899 - "dutyCycle.v line" 46: A lógica para <tmp> não corresponder a um conhecido ou FF trava modelo.
O estilo de descrição que você está usando para descrever um registo ou trava não é suportado na versão atual do software.Aqui o código:
Código:
dutyCycle (módulo
fduty entrada, / / 10KHz
fbase de entrada / 50Hz
SDI, / / Serial Data Input
input clk, / / Serial Clock
ss entrada, / / Serial Selecione
saída dever, / / Uscita Ciclo!
sdo saída / / Output de dados de série
);reg [7:0] tmp;
reg [7:0] mybyte;
reg [7:0] contador;
dutybit reg;
reg um;always @ (clk posedge ou posedge ss)
começo
if (SS)
começo
mybyte <= tmp;
fimif (clk () & & (ss == 0))
começo
tmp = (tmp [6:0], sdi);
fim
fim
atribuir sdo = tmp [7];always @ (fduty posedge)
começo
if (contador! = 100)
counter = counter 1;
diferente
dutybit = 1;
fimalways @ (fbase posedge)
começo
counter = 0;
dutybit = 0;
fimalways @ (fbase negedge)
começo
counter = 0;
dutybit = 0;
fimatribuir direito = dutybit;
endmodule