Usando bibliotecas corretas para vetores com 2s elogio não.

N

neocool

Guest
Oi de novo, No exemplo abaixo, se meus vetores contêm números 2 do elogio, o que as bibliotecas que eu deveria usar para tornar o código executar corretamente? Eu realmente não me importo sobre o uso TO_SIGNED ou CONV_SIGNED. Eu estou apenas confuso quando usar cada biblioteca (std_numeric, std_logic_artith, std_logic_unsigned, std_logic_signed)
Code:
 sinal máx: sd_logic_vector (9 downto 0); um sinal:?; Sinal sd_logic_vector (9 downto 0) resultado: sd_logic_vector (10 downto 0); resultado
 
Para VHDL, dependem de pacotes que você declara, você pode usar tipos: 1. Para unsigned: - pacote numeric_std: usar o tipo unsigned - pacote std_logic_arith: usar o tipo unsigned - pacote std_logic_unsigned: uso std_logic_vector 2. Para assinado: - pacote numeric_std: uso assinado tipo - pacote std_logic_arith: tipo de uso assinado - pacote assinado std_logic: std_logic_vector uso
 
posso usar std_logic_arith (assinado e sem assinatura) e std_numeric (assinado) bibliotecas no mesmo módulo ou é melhor não? A razão que eu estou fazendo essa pergunta é porque eu assinei adição e subtração em um módulo, e dá um resultado ModelSim boa simulação. No entanto sua implementação em hardware, dá alguns erros - o sinal é cortado e deslocado como houve uma confusão entre os tipos assinados e não assinados dentro. Não, eu estou usando std_numeric e 1164 apenas bibliotecas. O compilador me permite incluir std_logic_unsigned lá também, mas não faz diferença em um ou outro (software ou hardware) simulações. Obrigado
 
Eu acho que você só deve usar o pacote std_logic_arith ou numeric_std. Em seu módulo, o problema pode ser: - quando você adiciona números assinados, overflow pode ocorrer. É necessário prever gama de resultado para escolher o número de bits, isto é, um número de 8 bits tem uma gama de -128 a +127. - Se você não quer estouro, você deve fazer 1-bit extensão de sinal. O resultado é sempre correta.
 
graças Então, qual biblioteca não permitir a adição SLV e inteiro para obter SLV (para contadores)? No meu código, estou usando o vetor resultante com duração de um bit extra para dar conta de estouro. Ie (10 downto 0)
 

Welcome to EDABoard.com

Sponsor

Back
Top