当前位置:网站首页>【 VCS + Verdi joint simulation】 ~ Taking Counter as an Example
【 VCS + Verdi joint simulation】 ~ Taking Counter as an Example
2022-06-30 04:59:00 【Ai est très bon.】
Table des matières du présent chapitre:
0. Préface
Tout d'abord,,Dis - moi d'abord.,Quand j'ai écrit ce blog, je n'étais qu'un petit blanc,C'est vrai.,Je viens d'apprendre une journée,Ha ha ha,C'est vrai,Tu n'as pas tort.,C'est un jour.!!! Principalement à cause de la nécessité de brosser les problèmes et de trouver un emploi avant - hier ,Besoin de se familiariser avecVCSEtVerdiSimulation conjointe de( On dit que c'est très utile , Suivez le courant. !!!), C'est pour ça qu'il y a d'autres blogs. , Je vais en faire une chronique. , Pour qu'il y ait des amis à l'arrière. ,Faites une référence.,Pas grand - chose à dire,Directement ouvert et sec.
1. Généralités
Je crois que tout le monde en a touché un ou plusieurs. EDA Logiciels liés à ,Tu es commeVivado,Quartus, Ils contiennent déjà RTL,Compiler,Simulation,Synthèse,Regarde la forme d'onde., Fonctions telles que la cuisson des plaques . Alors pourquoi ne pas utiliser ça ?L'entreprise a - t - elle des problèmes????Ha Ha!,Tu as beaucoup réfléchi., Il y a dix à vingt ans que l'entreprise a appris quelque chose de plus que notre école. ,Alors dis, Il n'y a rien de mal à apprendre de l'entreprise. .Contre - intuitionVCSEtVerdi C'est très spécial ,VCS Se concentrer sur la compilation et la simulation ,Verdi Concentrez - vous sur la forme d'onde .Encore une foisVCS Compiler la simulation très rapidement ,Très efficace, Gagner du temps pour tout le monde ,Verdi Il est également très pratique de voir les formes d'onde debug, Il supporte la traçabilité des signaux , Ajout sans soudure de la forme d'onde du signal et d'autres fonctions .
2. De“0”Commencer à apprendre
Environnement: CentOS7
Codage: Vim
Compiler la simulation: VCS
Vue de la forme d'onde: Verdi
À propos de l'installation de la machine virtuelle veuillez passer à un autre blog ,Porte de transfert
À propos deVCSEtVerdiAutresEDA L'installation de l'outil est disponible dans la section commentaires ou en privé. .
=============================================================================================
Très bien, regardons en bas. ===>
Par défaut iciVCSEtVerdi L'environnement est prêt , Configurer l'environnement référence mon blog ,.bashrcConfiguration du fichier
2.1 Accès à la machine virtuelle,Sélectionner“”Ouvrir le terminal

2.2 Créer des fichiers connexes
2.2.1 AdoptionlinuxCommande pour créer le fichier approprié,Voici un exemple de compteur,Besoin de créerCounterDossiers,
(Notez que,LinuxLe portail est là.,Cliquez sur le portail)
$cd _Project/ # cd Nom du dossier
# En bas se trouve mon dossier _Project Le dossier à l'intérieur
# Counter
2.2.2 InCounterCréer dans le dossier3Dossiers
mkdir module tb verification # Création3Fichiers,Nom:module、tb、 verification
# En bas, les résultats
drwxrwxr-x. 2 ICer ICer 23 6Mois 29 17:43 module
drwxrwxr-x. 2 ICer ICer 27 6Mois 29 17:55 tb
drwxrwxr-x. 2 ICer ICer 39 6Mois 29 21:03 verification
2.2.3 InmoduleCréationrtlCode
vim counter.v # Adoptionvim Éditeur créer counter.vDocumentation
# Pour le processus d'écriture de code correspondant, voir vim Pour voir comment , Quand j'aurai le temps, j'écrirai aussi un article sur vimArticles utilisés, Venez selon vos besoins , Si vous avez besoin de commentaires, faites - le - moi savoir. !!!
Après avoir écrit le Code :
1 module counter(
2 input clk,
3 input rst,
4 output reg [5:0] count
5 );
6
7 always @ (posedge clk or negedge rst) begin
8 if(!rst) begin
9 count <= 0;
10 end
11 else begin
12 count <= count + 1;
13 end
14 end
15 endmodule
2.2.4 IntbCréer un code de test dans
vim tb.sv # AdoptionvimCréationtb.svDocumentation
Après avoir écrit le Code :
1 module tb_counter();
2
3 reg clk,rst;
4 wire [5:0] counter;
5
6 counter u1(clk,rst,counter);
7
8 always #(5) clk = ~clk;
9
10 initial begin
11 clk <= 0;
12 rst <= 0;
13 #20;
14 rst <= 1;
15 #50;
16 if(counter != 5)
17 $display("Failure 1: the counter should be 5 but it is %d",counter);
18 else
19 $display("You gotta the right result!");
20 $finish;
21 end
22
23 //.v file
24 //`ifdef FSDB
25 //initial begin
26 // $fsdbDumpfile("tb_counter.fsdb");
27 // $fsdbDumpvars;
28 //end
29 //`endif
30
31 //.sv file
32 initial begin
33 $fsdbDumpfile("tb.fsdb");
34 $fsdbDumpvars;
35 end
36 endmodule
2.2.5 InverificationMoyennefile_listEt les fichiers de script
# Ce fichier peut être sans suffixe , Le rôle principal est d'organiser le Front rtl Chemin vers le Code et les fichiers de test , Pour faciliter l'invocation du fichier script
vim file_list
# Ce fichier est un fichier script ,AdoptionmakeAppel d'instructions(Je peux voir les détails.MakefileUtilisation de, J'ai une documentation ici , Un message privé ou un commentaire est nécessaire )
# Il est utilisé pour programmer l'ordre de fonctionnement de tous les fichiers , C'est un grand frère
vim Makefile
Après avoir écrit le Code :
all: \
3 vcs \
4 verdi
5
6 #-------------------------------------------------------------------------------------------------------
7 # VCS
8 vcs :
9 vcs \
10 -f file_list \
11 -timescale=1ns/1ns \
12 -full64 -R +vc +v2k -sverilog -debug_access+all \
13 |tee vcs.log
14 #-------------------------------------------------------------------------------------------------------
# verdi
34
35 verdi :
36 verdi -sv -f file_list -ssf tb.fsdb &
37
38 #-------------------------------------------------------------------------------------------------------
39 clean :
40 rm -rf *~ core csrc simv* vc_hdrs.h ucli.key urg* *.log novas.* *.fsdb* verdiLog 64* DVEfiles *.vpd
41 rm -rf INCA_libs irun*
42 rm -rf modelsim.ini transcript work
2.3 Tout est prêt.,Sous - fonctionnement seulement
2.3.1 Exécutionvcs
$make vcs # AdoptionmakeAppel d'instructionsMakefileExécutionvcs
Résultats des opérations:

L'appel d'offres est original. , Le reste est généré par simulation ,C'est horrible.???Ha ha ha,C'est bon de s'y habituer.
2.3.2 Exécutionverdi
make verdi # AdoptionmakeAppel d'instructionsMakefileExécutionverdi
Résultats des opérations:

Pas de forme d'onde ???
Il faut faire un pas de plus , Est d'ajouter le signal que vous voulez voir ,Regardez l'image ci - dessous..
Ce n'est pas fini ?Comment ça va?,Tu as abandonné tes études??
J'ai laissé tomber l'étude dans la section commentaires !!!
2.4 Une bonne habitude après
Après avoir vu la forme d'onde , N'est - ce pas qu'il y a eu beaucoup de documents? ? Tu ne dois pas faire tes valises ! Il faut nettoyer après le dîner ,Et alors??
N'oublie pas.Makefile Il n'y a pas de cleanUne directive??C'est fini.!!!
make clean # Nettoyage des fichiers générés
Résultats:
C'est tout ce qu'on avait avant la simulation. !!!
3. Résumé
En apprenant ce jour ,Ne dis pas que,vcsEtverdi La simulation conjointe est très utile. ,Par ici., Je n'ai pas assez appris , Juste un peu de fourrure. , Il faut continuer à apprendre , Se référer aux forces des autres , J'espère que tout le monde apprendra ensemble ,Progrès communs,En cas d'erreur,Les critiques et les corrections sont les bienvenues!!!
C'est bon,Saupoudrer de fleurs à la fin, Trois fois plus ,Mise à jour continue.
=========================================================================
À suivre…
边栏推荐
- The difference between SVG and canvas
- Is the Flink connector JDBC open source? Where can I download it
- National Museum of Singapore - give you spiritual and physical satisfaction
- 力扣589:N 叉树的前序遍历
- 【Paper】2017_ Distributed control for high-speed trains movements
- Yolov5 torch installation
- Unity a* road finding force planning
- MySQL query gadget (I) replace a property value of the object in the JSON array in the JSON format string field
- Singapore parent-child tour, these popular attractions must be arranged
- Unrealeengine4 - about uobject's giant pit that is automatically GC garbage collected
猜你喜欢

Malignant bug: 1252 of unit MySQL export

Unity Logitech steering wheel access

力扣589:N 叉树的前序遍历

【Paper】2020_ Research on defense and evaluation strategy of heterogeneous UAV formation_ Zuojiankai

【Paper】2015_ Active fault-tolerant control system design with trajectory re-planning against actuator

力扣209. 长度最小的子数组

Pycharm database tool

Create a simple battle game with photon pun

Unity automatic pathfinding

Force buckle 59 Spiral matrix II
随机推荐
Thread safety and processing caused by multithreading
【Paper】2016_ A Learning-Based Fault Tolerant Tracking Control of an Unmanned Quadrotor Helicopter
Using the command line to convert JSON to dart file in fluent
【Paper】2013_ An efficient model predictive control scheme for an unmanned quadrotor helicopter
C # equipment synthesis
003-JS-DOM-Attr-innerText
Unreal 4 learning notes - set player birth point
[control] multi agent system summary. 1. system model. 2. control objectives. 3. model transformation.
Create transfer generation point
Modbus protocol register
Webots notes day 2
Sailing experience not to be missed in New York Tourism: take you to enjoy the magnificent city scenery from different perspectives
A virtual reality secret room escape adventure, let you see Technology Singapore
Deep learning ----- different methods to realize inception-10
[control] multi agent system summary. 5. system consolidation.
003-JS-DOM-Attr-innerText
Unrealeengine4 - about uobject's giant pit that is automatically GC garbage collected
Draw on screen border in Commodore 64
One command to run rancher
A must see cruise experience in Bangkok: visit the Mekong River and enjoy the scenery on both sides of the river