Erstellt: 15. 9. 2005, 17:03
Geändert: 14. 11. 2009, 21:06
Geändert: 14. 11. 2009, 21:06
Noch mehr Gründe für schlechte Hardware
Dies ist die Fortsetzung von Warum Hardware so schlecht ist.
Ich füge der Liste von Schwachsinn hier noch ein paar Leckerbissen hinzu, über die ich inzwischen gestolpert bin:
- Zu viele Treiber: an einer Leitung sollte normalerweise nur ein Treiber sitzen, d.h. nur ein logisches Gatter das versucht die Leitung auf 0 oder 1 zu ziehen. Das ist auch der Grund warum man die Signale seiner Blöcke alle fein säuberlich mit in und out klassifizieren muss. Ein wenig verwirrend ist schon das man in VHDL nicht ohne weiteres von seinen eigenen Ausgängen lesen kann. Diese Einschränkung kann man bei genauerem Hinsehen jedoch nachvollziehen, nicht jedoch einige Fehlermeldungen die mir der Design Rule Check bei meinem Design jetzt geworfen hat. Für ganz spezielle Fälle gibt es nämlich noch eine dritte Art von Ein- und Ausgängen, nämlich den Ein- und Ausgang: inout. Allein der Name sagt dem Programmierer schon das er hier höllisch aufpassen muss was vor sich geht. Eigentlich sollte man so etwas vermeiden wo es nur irgendwie geht, aber manchmal muss man halt auch mit anderer Leute Schaltungen reden und die bauen einem dann sowas. Gut jetzt habe ich ein Design, das ich weiter unterteilt habe. Ich habe ein paar inout-Pins und verbinde die mit einem Subblock meines großen Blocks. Auch die I/Os dieses Subblock sind natürlich vom Typ inout, damit das alles aneinander passt. Ansonsten ist das nur eine simple Leitung. Trotzdem beschwehrt sich der DRC das es mehr als einen Treiber auf dieser Leitung gibt. Ich meine, er hat ja irgendwie recht wenn er jeden inout-Pin als Treiber ansieht. Aber warum in aller Welt schreibe ich da wohl extra dran das das inout wenn nicht um ihn zu sagen das ich mir an der Stelle (gerne?) selbst ins Knie schießen möchte?
- open: Selbes Mistding, nächster Fehler. Wenn man einen Block an den nächsten Anschließt darf man keinen Eingang unbelegt lassen. So weit, so gut. Bei Ausgängen darf man das schon. Auch das ist nachvollziehbar. Man kann auch auf Nummer sicher gehen, das man nichts versehentlich vergessen hat, und bei den Ausgängen, die man nicht braucht, open dranschreiben. Ich meine, deutlicher kann man doch dann eigentlich wirklich nicht mehr sagen "mir ist völlig Wumpe was da rauskommt, ich brauche das nirgends mehr". Trotzdem beschwehrt sich der DRC an der Stelle man hätte den Ausgang vergessen.
- Menschen: einer der wohl wichtigsten Gründe ist natürlich wie immer vor der Tastatur zu suchen. Als ich mich neulich über die etwas seltsamen Ausgangswerte meines Dings wunderte fand ich schließlich heraus, das der sendende Teil etwas anders über die richtige Polung des Signals dachte als der Empfangende. Nachdem ich dann kurzerhand die Nullen und Einsen in den Zuweisungen vertauscht habe kamen sogar durchaus brauchbare Dinge am Ende heraus.