de synthèse problème>

D

dak-ju

Guest
Pls avoir un oeil sur le code suivant dans VHDL

if (clk'event et CLK = 1), puis
x <= y;
z <= x;
fin si;

Quand je synthétiser le code de la montre de simulation RTL z à un cycle clk version de retard y tandis que dans la simulation netlist il montre z à deux cycles de clk retardé version de Y (qui devrait être le cas concret.
Ma question est - est le code ci-dessus parfait?, qui peut provoquer un problème dans la validation de l'h / w ou seront-ils un problème dans le produit final sur le silicium?

Une autre observation que je voudrais partager, c'est que si je ajouter "après 1 ns" à la ligne 2 et 3 du code ci-dessus-je obtenir un résultat parfait dans les deux RTL et netlist simulation.
Est-il obligatoire d'ajouter «après 1 ns" design pour tous flop?

Merci et salutations
dak-ju

 
Il n'y a rien de mal avec le code!Il doit produire le même résultat
à la fois pour RTL et de la simulation Netlist.Cela signifie seulement qu'il ya une certaine
problème avec le simulateur en utilisant ur!Vous n'avez pas mensioned qui simulateur,
quelle version et sur lequel platfom que vous utilisez.

 
u doit utiliser "signal" que pour x, y, z.Si utiliser des variables u, ur les résultats seront différents.Cela est dû à des retards delta.si les signaux utilisation, u obtiendrez correct et de la production même dans les deux RTL et au niveau des simulations porte.

Si ce n'est pas le cas, alors simulateurs peuvent également avoir un impact sur les options d'utilisation u.pls vérifier.

 
Salut dak-ju,
la simulation de synthèse post doivent montrer la correctresults.Vous pourriez être la simulation de pré-synthèse ou de modèle de comportement seulement.Le modèle de synthèse post doit synthétiser une structure à deux flop y - x - z.

Cordialement,

 
Votre code est correct pour le circuit que vous voulez.Ajouter "après 1 ns" ou "# 1" dans Verilog se fait uniquement par ceux qui ne comprennent pas la façon que sur la base de simulation d'événement qui fonctionne et est inutile.Le fait que vous utilisez "<=" au lieu de ": =" montre que vous avez déjà utilisé correctement les signaux, et non variables.

 
Je pense que votre simulation RTL n'est pas prise en compte des constructions de blocage.Il est erroné.

 
les problèmes que je pense que la déclaration de processus,,,, «si» est utilisé dans la déclaration de processus,, signal à l'intérieur d'un processus n'est pas instantané ...variable est la solution est u ne veux VHA ce probCode:

Quand je synthétiser le code de la montre de simulation RTL z à un cycle clk version de retard y tandis que dans la simulation netlist il montre z à deux cycles de clk retardé version de Y (qui devrait être le cas concret.
 

Welcome to EDABoard.com

Sponsor

Back
Top