URL: https://linuxfr.org/news/sortie-de-yosys-open-synthesis-suite-0-8 Title: Sortie de Yosys Open Synthesis Suite 0.8 Authors: martoni ZeroHeure, Davy Defaud, palm123, bubarđŸŠ„ et BAud Date: 2018ćčŽ10月19æ—„T15:03:49+02:00 License: CC By-SA Tags: asic, hdl, verilog, yosys et fpga Score: 37 L’annonce a Ă©tĂ© faite mardi 16 octobre par W. Clifford : la version 0.8 de Yosis, un logiciel libre de synthĂšse Verilog est sortie. Dans le processus de dĂ©veloppement [[FPGA]]/[[ASIC]] la synthĂšse est l’étape de conversion du modĂšle matĂ©riel simulĂ© en « _netlist RTL_ », d’oĂč l’on peut dĂ©river le circuit rĂ©el. ---- [Site officiel de Yosys](http://www.clifford.at/yosys/) [Page de tĂ©lĂ©chargement de la version 0.8](https://github.com/YosysHQ/yosys/releases/tag/yosys-0.8) [La liste des changements dans le fichier CHANGELOG du projet](https://github.com/YosysHQ/yosys/releases) ---- Le [[Verilog]] est un langage de modĂ©lisation du matĂ©riel (HDL pour _Hardware Description Langage_) permettant de dĂ©crire un circuit numĂ©rique en simulation. Ce modĂšle Verilog sert de spĂ©cification pour une rĂ©alisation « physique » du composant modĂ©lisĂ©. La synthĂšse HDL peut‐ĂȘtre considĂ©rĂ©e comme une conversion du code HDL en un « schĂ©ma Ă©lectronique » constituĂ© de composants numĂ©riques reliĂ©s entre eux. On parle alors de « _netlist RTL_ » (_[[Register Transfer Level]]_). Yosys n’est pas le seul logiciel libre permettant de faire de la synthĂšse Verilog (on peut penser Ă©galement Ă  [ODIN II](http://docs.verilogtorouting.org/en/latest/odin/) utilisĂ© dans la suite logiciel [VTR](https://verilogtorouting.org/)). Mais c’est sans contestation possible le logiciel libre qui fait le plus parler de lui ces derniers temps et dont le dĂ©veloppement est le plus actif. En effet, Yosys cible dĂ©sormais beaucoup de FPGA bon marchĂ©, comme le CoolRunner-II, l’ECP5, le MAX10, le Cyclone IV et surtout le ICE40. L’ICE40 est un peu particulier dans la liste puisque pour ce FPGA toute la chaĂźne de dĂ©veloppement a Ă©tĂ© libĂ©rĂ©e. On peut bien sĂ»r faire de la synthĂšse Verilog, puisque le FPGA est pris en charge par Yosys, mais Ă©galement le placement routage avec [arachne-pnr](https://github.com/YosysHQ/arachne-pnr), ainsi que la gĂ©nĂ©ration du fichier de configuration (_bitstream_) avec [icepack/iceprog](http://www.clifford.at/icestorm/). Il est Ă©galement possible de vĂ©rifier les _timings_ grĂące Ă  icetime. Beaucoup de choses ont Ă©tĂ© ajoutĂ©es Ă  cette version, mais l’information principale que l’on peut voir dans les notes de version, c’est que le dĂ©veloppement de Yosys est trĂšs actif. L’objectif de Yosys de devenir le « couteau suisse » libre du FPGA peut presque ĂȘtre considĂ©rĂ© comme atteint aujourd’hui. MĂȘme si cela n’est pas apparu avec la version 0.8, on peut noter les fonctionnalitĂ©s suivantes : - le langage FIRRTL utilisĂ© par Chisel3 est une « sortie » (_back‐end_) possible pour la gĂ©nĂ©ration de la _netlist_ ; - le prise en charge du moteur de vĂ©rification formelle [yosys-smtbmc](http://www.clifford.at/papers/2017/smtbmc-sby/slides.pdf) peut quasiment ĂȘtre considĂ©rĂ© comme stable — ce n’est pas notre [blogueur chrĂ©tien prĂ©fĂ©rĂ©](https://zipcpu.com/about/gisselquist-technology.html) qui dirait le contraire Ă  la vue des [nombreuses notes](https://zipcpu.com/blog/2017/10/19/formal-intro.html) expliquant son fonctionnement ; - la liste des FPGA (et autre ASIC) pris en charge s’allonge irrĂ©mĂ©diablement ; - ainsi que les formats de « _netlist_ » permettant d’ĂȘtre rĂ©intĂ©grĂ©s dans les logiciels privateurs des fondeurs : BLIF, EDIF, BTOR, SMT-LIB, RTL Verilog, FIRRTL, etc. Pour comprendre comment fonctionne Yosys, des aperçus sont donnĂ©s Ă  la page [_screenshots_](http://www.clifford.at/yosys/screenshots.html) du site officiel. Notamment avec un simple compteur : ```verilog module counter (clk, rst, en, count); input clk, rst, en; output reg [3:0] count; always @(posedge clk) if (rst) count <= 4'd0; else if (en) count <= count + 4'd1; endmodule ``` Yosys se prĂ©sente sous forme de ligne de commande. On commence par lire et dĂ©chiffrer le fichier source : yosys> read_verilog counter.v 1. Executing Verilog-2005 frontend. Parsing Verilog input from `counter.v' to AST representation. Generating RTLIL representation for module `\counter'. Successfully finished Verilog frontend. La synthĂšse Ă  proprement parler se lance avec la commande `proc` (_process to netlist_). Mais il est possible de lancer tout un tas de commandes pour optimiser la synthĂšse : `opt`, `fsm`, `memory`, etc. On peut Ă©galement lancer la commande `synth` pour exĂ©cuter toutes ces Ă©tapes automatiquement. À chaque instant on peut voir le « schĂ©ma » gĂ©nĂ©rĂ© si graphiz est installĂ© (et xdot) avec la commande `show` : yosys> show ![SchĂ©ma gĂ©nĂ©rĂ© par Yosis](http://www.clifford.at/yosys/images/show_rtl.png) Pour terminer la synthĂšse Ă  proprement parler, il faut associer nos blocs Ă  des composants issus d’une bibliothĂšque fondeur/FPGA (que l’on optimisera avec [_abc_](https://people.eecs.berkeley.edu/~alanmi/abc/)) : yosys> dfflibmap -liberty mylib.lib yosys> abc -liberty mylib.lib On peut ensuite sauvegarder notre design ainsi synthĂ©tisĂ© dans diffĂ©rents formats au moyen des commandes `write_*` : yosys> write_ write_aiger write_btor write_file write_ilang write_json write_smt2 write_spice write_verilog write_blif write_edif write_firrtl write_intersynth write_simplec write_smv write_table On remarquera la prĂ©sence du format FIRRTL de [Chisel3](https://chisel.eecs.berkeley.edu/) ou de Spice pour faire de la simulation analogique. Il est Ă©galement possible de réécrire la sortie en Verilog « bas niveau » ou en EDIF/BLIF, reconnu par la plupart des fondeurs/FPGA. Ceci n’est qu’un aperçu (vraiment) trĂšs rapide de Yosys, j’encourage toutes celles et ceux intĂ©ressĂ©s par le sujet Ă  lire le [manuel de Yosys](http://www.clifford.at/yosys/files/yosys_manual.pdf) qui est plutĂŽt bien fait.

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /