Property Specification Language
Le Property Specification Language (PSL) (en français : Langage de spécification par propriétés) est basé sur le langage Sugar d’IBM. Il a été approuvé par l’organisme Accellera en , et par l’IEEE[1] en .
C'est un langage formel qui permet de réaliser une spécification matérielle à l'aide de propriétés et d'assertions. Du fait de la haute précision mathématique du langage, l'opération de description retire toute ambiguïté à la spécification résultante. C'est un langage rapide à assimiler, basé sur une syntaxe relativement simple.
Son utilisation
Les assertions peuvent ensuite être interprétées par un moteur de simulation (vérification dynamique) ou un outil de vérification formelle (vérification statique) qui supporte le langage. Le PSL permet également de relever le nombre de mise à l'épreuve d'une propriété lors d'une simulation ou d'une analyse. Cela permet, en fin de phase de vérification, de justifier du taux de couverture réalisé.
Inclus dans le code VHDL
library ieee;
use ieee.std_logic_1164.all;
entity receiver is
port (clk : in std_logic;
(…)
B : in std_logic;
C : in std_logic);
end receiver;
architecture archi of receiver is
Begin
-- Commentaires VHDL
-- psl default clock is rose(clk);
-- psl assert always (A→next(B));
-- psl assert always A→E before B;
-- psl C_then_FC: assert always C|⇒{F[→2];C};
(…VHDL…)
end archi;
Exemple en PSL
Cette unité de verification (vunit) permet de vérifier sur front montant de CLK qu'on n'a jamais SCLK=0 quand CS_N=1:
vunit checker_spi(top)
default clock : posedge(CLK);
property p0 : never(!SCLK && CS_N);
d0 : assert p0;
Cette unité de verification (vunit) permet de vérifier sur front montant de CLK qu'on a 8 coups d'horloge SCLK après le passage à 0 de CS_N:
vunit checker_spi(top)
default clock : posedge(CLK);
sequence fe_CS_N : {CS_N;!CS_N};
property p0 : always({fe_CS_N} |→ {SCLK;{!SCLK;SCLK}[*8]});
d0 : assert p0;
Notes et références
- ↑ (en) « IEEE Standards Association », sur IEEE Standards Association (consulté le ).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.