Renato Abreu [email protected]
Universidade Federal do AmazonasPROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
Verificação de Propriedades Temporais em Filtros Digitais de Ponto-Fixo usando Teorias do Módulo da Satisfatibilidade
1
Verificação de Sistemas
• Aplicado a hardware e software que em que a falha é inaceitável
• Métodos utilizados:
– Simulações e testes
– Métodos formais
2
- inserir entradas e observar saídas
- não cobre todas as possíveis combinações
- descreve o sistema usando lógica matemática- garante corretude para todas as possíveis entradas e saídas
Typecast overflow!
Filtros Digitais
• Encontrados em:– carros– aeronaves– sistemas de comunicação– produtos eletrônicos– equipamentos médicos, etc
• Utilizados para:– remoção de ruídos– equalização de canal de comunicação– análise espectral de sinais, etc
• Frequentemente implementados em:– DSPs– FPGAs– Processadores de ponto fixo
3
Implementação em Ponto Fixo
4
Vantagens Desvantagens
• Menor custo de hardware
• Melhor desempenho (velocidade
e consumo de energia)
• Efeitos de quantização
• Menor intervalo dinâmico → overflow
• Ciclo limite
Com quantização (10 bits)
ReferênciaOverflow
Referência
Wrap-around
Filtro estável: anulando a entrada a saída deve ir pra zero Porém, em
ponto fixo...
Aspectos da Implementação de Filtros
• Projeto de filtros feito em ponto flutuante, mas a implementação é feita em ponto fixo
• Simulações e testes extensivos são insuficientes para detectar todos os possíveis problemas (Cox et al., 2012)
• Determinar o comprimento da palavra (bits para parte inteira e parte fracionária) considerando:– Precisão– Desempenho– Custo
5
Objetivos
• Detectar problemas em filtros digitais em ponto fixo utilizando um verificador BMC baseado em SMT
– Verificação de overflow, ciclo limite, restrições temporais e nível de ruídos através de um BMC de prateleira
– Verificação de filtros de diversos tipos e com diferentes formatos de ponto fixo
– Aprimorar implementação para diminuir tempo de verificação
– Verificação de benchmarks e comparação dos resultados
6
Sistema linear invariante no tempo
Implementação de Filtros
𝑦 (𝑛)=−∑𝑘=1
𝑁
𝑎𝑘 y (n−k )+∑𝑘=0
𝑀
𝑏𝑘 x (n−k )7
Forma Direta I
float iirFilterI() {
float yn = 0;for (int k = 0; k < M; k++){
yn += *b++ * *x--;}for (int k = 1; k < N; k++){
yn -= *a++ * *y--;}return yn;
}
2-l-1
2-l
Q(x)
2k-1-2-l
-2k-1
Complemento de dois, k bits inteiros, l bits de precisão
Modelo Realista com Quantização
8
Quantização da entrada
Quantização dos coeficientes
Quantização nas operações intermediárias
Máximo
Mínimo
Arredondamento:-2-l-1 ≤ e(x) ≤ 2-l-1
DSPs modernos possuem acumuladores para
armazenar os resultados com maior precisão
Lógica Proposicional
• A sintaxe das fórmulas em lógica proposicional por:
• Um solucionador SAT é um algoritmo que toma como entrada uma fórmula ϕ na forma normal conjuntiva e decide se ela é satisfatível ou insatisfatível
– Ex. 1:
– Ex. 2:
9
(𝑥1∨𝑥2)⋀ (𝑥3∨𝑥 4)
(𝑥1∨𝑥2)⋀ (¬𝑥1∨¬𝑥2)
É satisfatível pois a fórmula é verdadeira, por exemplo para:
É insatisfatível pois a fórmula é falsa para qualquer valor e
Teoria da Satisfatibilidade
• Um solucionador SMT decide sobre a satisfatibilidade de uma fórmula de primeira ordem usando diferentes teorias de suporte e então generaliza a satisfatibilidade proposicional
10
Teoria Exemplo
Igualdade
Vetor de bits
Aritmetica linear
Arrays
Teorias combinadas
Verificar overflow
BMC baseado em SMT
• Tem sido aplicado para verificação de softwares sequenciais• Verifica a negação de uma determinada propriedade a uma
determinada profundidade
• Sistema de transição de estados M desdobrado k vezes– Estado: contador de programa e variáveis do programa– Desdobramento a partir do fluxo de controle (loops, trocas de contexto)
• Traduzido em uma condição de verificação ψ tal que– ψ é satisfatível se e somente se ϕ tem um contraexemplo em uma
profundidade de no máximo k
11
BMC usando o ESBMC
12
Código C/C++
Programa em GOTO
Fluxo de controle Contexto
Lógico
Forma SSA Solver
SMT
Conversão de restrições e
propriedades
OK
Contra-exemplo
Verificação de Filtros Digitais
• Projetar o filtro usando o método e ferramenta de preferência• Estimar intervalo de saída para uma dada faixa de entrada
– Definir o comprimento da palavra, levando em conta o custo, problemas de quantização e desempenho
• Entrar com parâmetros do filtro no modelo de estrutura em C• Realizar análise do pior caso de tempo de execução (WCET)• Configurar assertivas no modelo em C
– Overflow– Ciclo limite– Restrições temporais– Outras propriedades (propriedades de projeto, SNR, etc)
• Executar verificação e caso falhe, obter contraexemplo
13
14
Exemplo1: Verificação de Overflow
• Filtro IIR com as seguintes especificações– Butterworth corta-faixa de 2ª ordem– Frequências de corte: 7 e 10 kHz– Frequência de amostragem: 48 kHz– Atenuação nas frequências de corte: 3dB
-0,703125
-0,50,75
-0,703125
0,75x(n) y(n)
Exemplo1: Verificação de Overflow
• Estimando o intervalo para a saída:– Para um sistema estável, – No Matlab a função impz calcula a resposta ao impulso
15
• = 1,8178
• Para x entre [-1,1],
• Representando em
- Intervalo [-2, 1,984375]
- Erro ±0,0078125
16
Exemplo1: Verificação de Overflow
• O verificador aplica entradas não-determinísticas dentro do intervalo [-1,1] em busca da negação de:
• Aqui a verificação retorna a seguinte entrada como contraexemplo:– x = { 0.0f, 0.015625f, 0.0f, -0.890625f, 0.96875f, -0.890625f }– xaux = { -0.890625f, 0.96875f, -0.890625f }– yaux = { 0f, -0.671875f, 0.890625f }
-0,703125
-0,50,75
-0,703125
0,75 -2,03125-0,890625 0,75 = -0,6718750
+
+
+-0,890625 0,75 = -0,671875
0,968750 -0,703125 = -0,6875
O filtro também falha se implementado na Forma Direta II, mas não falha na Forma
Transposta II devido a ordem de execução
das operações
17
Exemplo 2: Verificação de Ciclo Limite
• Filtro IIR de um pólo com 2 bits para inteiros e 4 bits de precisão
𝑦 (𝑛)=−0,5 y (n−1 )+x (n )
−0,5 Q
Wrap around
Verificação de Ciclo Limite
• Utilizamos uma entrada nula e valores não determinísticos para as saídas anteriores
• Uma assertiva detecta uma falha caso o conjunto de estados anteriores das saídas se repetir
18
−𝟎 ,𝟓-1 0 1 2 3
n
y
0,125-0,06250,0625-0,06250,0625 -0,06250,0625-0,0625
= 0 = -0,0625= 0,0625= -0,0625= 0,0625y(0)y(1)y(2)y(3)
Repetição com entrada nula.Ciclo Limite!
Verificação de Restrições Temporais
• Baseada na análise de tempo de execução do pior caso (WCET)• Exemplo de operação em um trecho de código para MSP430:
• O verificador aplica uma entrada qualquer em busca da negação de
19
sum += *b++ * *x--;
MOV.W @r9+,r12 5 cyclesMOV.W @r9+,r13 5 cyclesSUB.W #4,r10 5 cyclesMOV.W 4(r10),r14 3 cyclesMOV.W 6(r10),r15 3 cyclesCALL #__fs_mpy 5 cyclesMOV.W r7,r14 1 cycleMOV.W r8,r15 1 cycleCALL #__fs_add 5 cyclesMOV.W r12,r7 1 cycleMOV.W r13,r8 1 cycle
float iirFilterI() {float yn = 0;for (int k = 0; k < M; k++){
yn += *b++ * *x--;}for (int k = 1; k < N; k++){
yn -= *a++ * *y--;}return yn;
}
Número de ciclos Duração do ciclo
Deadline
• Quantidade de instruções dependerá da ordem do filtro.
• Duração das operações dependerá da plataforma e do tamanho da palavra
Avaliação Experimental
20
• Ambiente:– Intel Core i7-2600, 3.40 GHz com 24 GB de RAM, Fedora 64-bits– ESBMC v1.21– SMT solver Z3 v3.2, usando aritmética de vetor de bits– Timeout: 3600 segundos
• Filtros verificados– obtidos da literatura ou projetados no Matlab
– Fs = 48KHz (típica em áudio)
– restrição temporal baseada em Fs de 48 KHz e clock de 16 MHz (MSP430)
• Benchmarks disponíveis em www.esbmc.org
Resultados
# Filtro Na Nb ∑|hk| Entrada Bits xsize FalhasTempo de
verificação (s)OF LC TC
1 LP-IIR 2 1 2 [-1,1] <2,4> 6 OF, LC 39 4 <1
2 LP-Butterworth-IIR 3 3 1.2 [-1.6,1.6] <2,5> 6 OF 579 634 <1
3 LP-IIR 3 1 4 [-1,1] <3,4> 6 OF, LC 210 29 <1
4 LP-IIR 3 1 1.56 [-1,1] <2,4> 6 - 110 51 <1
5 LP-FIR 1 31 1.93 [-1,1] <2,6> 31 TC TO 98 1
6 HP-ChebyshevI-IIR 3 3 1.33 [-1,1] <2,10> 6 - 853 2058 <1
7 BP-Elliptic-IIR 3 3 1.24 [-1.0,1.0] <2,10> 6 LC 546 474 <1
8 BS-Butterworth-IIR 3 3 1.81 [-1.0,1.0] <2,8> 6 OF 106 1299 <1
9 BP-Elliptic-IIR 5 5 0.91 [-1.1,1.1] <1,8> 10 OF, LC 7 20 <1
10 HP-Butterworth-IIR 5 5 1.58 [-1.27, 1.27] <2,6> 10 LC 2468 1508 <1
11 BP-ChebyshevI-IIR 5 5 1.51 [-1.33, 1.33] <2,6> 10 - TO TO <1
12 HP-Elliptic-IIR 7 7 5.39 [-1,1] <3,13> 14 TC 73 TO <1
21
Tipo de filtro
Número de coeficientes de realimentação
Número de coeficientes
diretos
Soma do módulo da resposta ao
impulso
Intervalo de entrada para
aplicação
Bits para parte inteira e fracionária
Tamanho da entrada
aplicada
Tipo de falha obtida
OF - Overflow, LC - Ciclo limite, TC - restrição temporal, TO - Time out
Alto tempo de verificação de filtros mais complexos
Falha de restrição temporal para filtros de
maior ordem
Rápida verificação de restrição temporal. Código sequencial.
Verificados diferentes tipos de filtros de diversas ordens
Overflow detectado mesmo para estimativa
conservadoraRápida verificação de filtros de baixa ordem e com pequeno
tamanho de palavra
Conclusões
• Conclusões gerais– Foi proposta uma abordagem para verificação de filtros digitais utilizando
um verificador BMC baseado em SMT– Permite encontrar problemas relacionados a representação em ponto fixo– É possível detectar problemas que seriam difíceis de identificar através de
testes e simulações
• Contribuições– Exploramos as vantagens do verificador de prateleira ESBMC em cima de
um modelo em C– Estendemos a abordagem com a verificação de restrições temporais
baseadas em WCET em conjunto com o BMC
• Observações– Alto tempo de verificação para filtros mais complexos
22
Trabalhos Futuros
• Aplicação do método para outras formas de filtros – Forma Direta II, Forma Transposta, em Cascata, em Paralelo, etc
• Aumentar eficiência do sistema de verificação– Implementação de uma biblioteca de ponto fixo
• Adicionar mais propriedades para verificação– Especificações da resposta em frequência– Nível de ruído (SNR)
• Outras aplicações em processamento digital de sinais– Verificação de sistema OFDM
23
OBRIGADO!
24
Metodologia de Desenvolvimento
Tabela - Cronograma de atividades
26
Implementação de Filtros
𝑦 (𝑛)=−∑𝑘=1
𝑁
𝑎𝑘 y (n−k )+∑𝑘=0
𝑀
𝑏𝑘 x (n−k )27
Forma Direta IForma Direta IIForma Transposta II
Forma em Cascata
Forma em Paralelo
Sistema linear invariante no tempo
Representação em Ponto Fixo
• Representação em complemento de dois
• ⟨k, l sendo ⟩ k bits para parte inteira e l bits para fracionária
• Um bit de sinal
• (bk−1 bk−2 ... b1 b0 · b−1 b−2 ... b−l)
• Valor máximo
• Valor mínimo
28
29
Fórmulas Lógicas
Referências
• Verificação de modelos– L. de Moura et al., “Z3: An efficient SMT solver,” TACAS, 2008– L. Cordeiro et al. “SMT-based bounded model checking for embedded ANSI-C software,” IEEE
Transactions on Software Engineering, 2012– E. Clarke et al., “A tool for checking ANSI-C programs,” TACAS, 2004
• Verificação de restrições temporais– S. Kim et al., “Using a model checker to determine worstcase execution time,” Columbia
University Reports, 2009– R. Barreto et al., “Verifying Embedded C Software with Timing Constraints Using an Untimed
Bounded Model Checker,” SBESC, 2011
• Verificação de filtros digitais– D.A. Bailey and A.A. Beex, “Simulation of filter structures for fixedpoint implementation,”
Proceedings of the 28th Southeastern Symposium on System Theory, 1996– Behzad Akbarpour and Sofiène Tahar, “Error analysis of digital filters using HOL theorem
proving,” Journal of Applied Logic, 2007– C.F. Fang et al., “Fast, accurate static analysis for fixed-point finite-precision effects in DSP
designs,” ICCAD, 2003– A. Cox et al., “A bit too precise? Bounded verification of quantized digital filters,” TACAS, 2012
30
Top Related