THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Σχεδίαση Συστημάτων VLSI => Topic started by: Cr0ne on November 19, 2014, 17:46:25 pm



Title: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Cr0ne on November 19, 2014, 17:46:25 pm
Απορίες σχετικά με ψηφιακές σχεδιάσεις 2014-2015. Μείνετε on topic.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on December 16, 2014, 21:03:26 pm
Εντός της εβδομάδας θα έχει λυθεί το θέμα με τους RTL και Encounter.

Προς το παρόν μπορείτε να κάνετε compile τους κώδικές σας με το
nclaunch.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on January 12, 2015, 15:07:20 pm
Διευκρίνιση για τον encounter.

Στο import design είχαμε πει ότι κάνουμε load το .conf. Η εγκατεστημένη έκδοση του encounter ζητάει .globals. Γι' αυτό αλλάζουμε το file type σε all files για να το βρούμε.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on January 12, 2015, 16:35:57 pm
Επειδή βλέπω ότι έχετε αρκετά θέματα με τις εργασίες και μου είναι δύσκολο να απαντάω στον κάθενα ξεχωριστά με mail, θα σας παρακαλούσα να συγκεντρώσετε τις απορίες σας και είτε να τις ανεβάσετε εδώ ώστε να τις δουν και οι άλλοι και να τις απαντήσω, είτε να κανονίσουμε ένα ραντεβού με κάθε ομάδα για 30 λεπτά και να τις λύσουμε.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Godhatesusall on January 12, 2015, 17:29:57 pm
Γράφτε λέμε, έχει free help!


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Tracy_McGrady on January 13, 2015, 14:13:11 pm
Mono verify_geometry prepei na kanoume sto telos tis psifiakis sxediasis ? (sorry gia ta greeklish alla den exw ellinika edw)


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on January 14, 2015, 20:46:04 pm
Ναι. Αν δεν έχεις violations είσαι κομπλέ.

Επίσης όταν μου παρουσιάσετε τα αποτελέσματα, παραλείψτε το metal fill για να μπορώ εύκολα να δω το σχήμα σας.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Dimitris1989 on January 14, 2015, 21:25:27 pm
1)Ο κώδικας στο rtl κάνει compile χωρίς σφάλματα
2)Η εξομοίωση στο ncLaunch είναι αυτή που θέλουμε

3)Στον Encounter ορίσαμε ένα "λογικό" αριθμό για το floor plan. Τα power stripes δεν καταλάβαμε πως ακριβώς πρέπει να μπούν. Κάναμε Place Stander Cells και όλα τα verifications επιστρέφουν χωρίς violation.

Αυτό σημαίνει ότι είναι εντάξει το κύκλωμα και έτοιμο για παράδοση ή θέλει τίποτα ακόμα;


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Chester on January 14, 2015, 21:39:08 pm
Όπως ακριβώς λέει και το παιδί από πάνω.

Και εμείς έχουμε γράψει τον κώδικα και έχει περάσει επιτυχώς από το NcLaunch και τον Simulator.

Έχουμε τρέξει κανονικά τον RTL και περνάει χωρίς errors.

Τέλος τρέξαμε κανονικά και τον Encounter. Δώσαμε σχετικά τυχαίες τιμές στα floor plan, power rails, power stripes και routing power stripes. Ακολουθήσαμε τα βήματα του tutorial για placement, routing και fill. Προχωρήσαμε σε Verifications για geometry, metal density και connectivity.

Η ερώτηση είναι η εξής:

Στα NcLaunch και RTL καταλάβαμε πως λειτουργεί, αλλά στον Encounter δεν έχουμε ιδέα για το πως πέρασε το verification, αφού βάλαμε τυχαίες τιμές. Υπάρχει κάπου που μπορούμε να διαβάσουμε για να το δικαιολογήσουμε στην αναφορά και να μην έχουμε θέμα στην εξέταση; Επειδή στο tutorial δεν αναφέρει κάτι. Ή να μην δώσουμε σημασία;


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Godhatesusall on January 14, 2015, 22:09:24 pm
@chester
Στο EDI (Encounter Digital Implementation) , το verify που λέτε είναι verify geometry/connectivity/metal density κ.α . Είναι δηλαδή checks για το αν το σχέδιο έχει υλοποηθεί σωστά, όχι για το αν ο αλγόριθμος σου δουλεύει όπως θέλεις. Δηλαδή το verify geometry θα σου πει αν έχεις σωστά τα πλάτη/μήκη και την εσωτερική σύνδεση ανάμεσα στα standard cells σου. Το verify connectivity σου δείχνει αν έχεις ανοιχτο κύκλωμα ή βραχυκύκλωμα, undriven wires κοκ.
Αυτό που κάνεις στο incisive (που τρέχει μέσω του nclaunch) είναι κανονικό simulation του RTL ή των πυλών που βγαίνουν από τον RTL Compiler, και απλά βλεπεις αν οι κυματομορφές είναι όπως τις περιμένεις.

@Dimitris:

Τα power stripes μπαίνουν συνήθως με την εμπειρία την πρώτη φορά (ή με κανόνες που τους προτείνει αυτός που σου δίνει την βιβλιοθήκη). Από κει και πέρα, το αν το power stripe θα είναι 2 ή 200 routing tracks μεγάλο καθορίζεται από το ποσο ρεύμα τραβάει το κύκλωμα σου. Αυτό συνήθως λέγεται IR drop analysis, και δεν φαντάζομαι να το κάνετε στην εργασία. Σκέψου την ανάλυση αυτή σαν ένας τρόπος να δεις πόση θα είναι η τάση σε κάθε standard cell , αν υπολογίσουμε την πτώση τάσης στον αγωγό. Μεγαλώνοντας τον αριθμό αλλά  των power stripes, τα power rails γίνονται μικρότερα σε μήκος αφού είναι πιο συχνά τα stripes ,και άρα μειώνεται το IR drop. Βεβαίως, εσύ καταναλώνεις extra metal γι αυτή την "ευκολία".

Γενικά δηλαδή, το EDI κάνει έναν γρήγορο έλεγχο και σου λέει ότι καθαρά από θέμα σύνδεσης και drc, δεν έχεις πρόβλημα με τα power stripes/rails, αλλά δεν ελέγχει IR drop.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Chester on January 14, 2015, 22:48:47 pm
@chester
Στο EDI (Encounter Digital Implementation) , το verify που λέτε είναι verify geometry/connectivity/metal density κ.α . Είναι δηλαδή checks για το αν το σχέδιο έχει υλοποηθεί σωστά, όχι για το αν ο αλγόριθμος σου δουλεύει όπως θέλεις. Δηλαδή το verify geometry θα σου πει αν έχεις σωστά τα πλάτη/μήκη και την εσωτερική σύνδεση ανάμεσα στα standard cells σου. Το verify connectivity σου δείχνει αν έχεις ανοιχτο κύκλωμα ή βραχυκύκλωμα, undriven wires κοκ.
Αυτό που κάνεις στο incisive (που τρέχει μέσω του nclaunch) είναι κανονικό simulation του RTL ή των πυλών που βγαίνουν από τον RTL Compiler, και απλά βλεπεις αν οι κυματομορφές είναι όπως τις περιμένεις.

Αρχικά ευχαριστώ για την απάντηση. Τώρα σχετικά με το verify, ναι και εγώ κάτι τέτοιο είχα υποψιαστεί ότι κάνουν. Τρέξαμε τα 3 verify και δεν μας έβγαλε κάποιο error.
Επίσης οι κυματομορφές μας είναι ακριβώς αυτό που περιμέναμε οπότε είμαστε σωστοί από αυτή την πλευρά.

Αυτό που ρωτάω πρακτικά είναι αν είμαστε καλυμμένοι με το γεγονός ότι βάλαμε σχετικά τυχαίες τιμές στα floor plan, power rails, power stripes και routing power stripes και τελικά δεν μας βγήκε κανένα error στο verification. Στα τόσα χρόνια compile/debug/κορτεση/κλπ πότε δεν μου βγαίνουν με την μία σωστά (αν είναι όντως σωστά αυτά που κάναμε) και αυτό με προβληματίζει :P .


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Godhatesusall on January 14, 2015, 23:22:02 pm
Καταλαβαίνω, απλά μην λειτουργείς με λογική σωστού ή λάθους.
Για να πας κάθε μέρα τούμπα-καμάρα μπορείς να χεις παπάκι ή ferrari. Και τα 2 την κάνουν την δουλεια τους :P

Εννοώ ότι μπορεί να έκανες ένα τεράστιο floorplan που είναι άδειο. Ο σκοπός στα asic είναι να χρησιμοποιούμε (utilization) 95%+ του floorplan μας στο στάδιο μετά το routing (και πριν βάλεις τα metal fills).
Γενικά , ως rule of thumb, τροποποίησε το floorplan ώστε το utilization σου μετά το placement να είναι 75%. Μίκρυνε το, ξανατρέξε placement , ξανα-άλλαξε το utilization μέχρι να φτάσεις μισο-ασυμπτωτικά στο 75%. Το υπόλοιπο 20%+ θα στο φάει το clock tree synthesis(cts) και το routing.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: nivakos on January 20, 2015, 23:33:53 pm
Καλησπέρα,
όταν πάμε να κάνουμε elaborate το testbench, μας πετάει ένα σφάλμα που δεν μπορούμε να βρούμε στο ίντερνετ. Το σφάλμα είναι ncelab: *F,EVNMRA: the entity specified 'WORKLIB.TB' has no architecture. Μήπως έχει κανεις ιδέα τι μπορεί να συμαίνει αυτό ?


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Godhatesusall on January 20, 2015, 23:59:29 pm
Καλησπέρα,
όταν πάμε να κάνουμε elaborate το testbench, μας πετάει ένα σφάλμα που δεν μπορούμε να βρούμε στο ίντερνετ. Το σφάλμα είναι ncelab: *F,EVNMRA: the entity specified 'WORKLIB.TB' has no architecture. Μήπως έχει κανεις ιδέα τι μπορεί να συμαίνει αυτό ?
Είναι πολύ γενικό το σφάλμα, κάτι άλλο θα έχεις στο logfile του προγράμματος πιο πάνω που θα σου δείχνει πιο ειδικά το που είναι το πρόβλημα.

Συνήθως σφάλματα τέτοιου είδους βγαίνουν όταν δεν μπορείς να κάνεις bind το architecure με τα libraries .  Τσέκαρε αυτό και κάνε attach εδώ το logfile του run σου


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: nivakos on January 21, 2015, 00:09:53 am
οκ ευχαριστωωωώ!


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on November 27, 2015, 19:44:47 pm
Όσοι κάνατε σήμερα το εργαστήριο ψηφιακής σχεδίασης, να ξέρετε, ότι ξέχασα να σας πω κάτι.
Αφορά τον encounter. Όταν τελειώνουμε με το layout πρέπει να κάνουμε και verify. Δεν το κάναμε,
αλλά μπορείτε να το βρείτε στο tutorial.

Ότι απορίες έχετε να τις ανεβάζετε εδώ και θα προσπαθώ να τις απαντάω όσο πιο σύντομα γίνεται.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: c0ndemn3d on December 17, 2015, 20:37:28 pm
Η υλοποίησή μας περνάει τα verify που έχει το tutorial, αλλά παρουσίασε κάτι errors σε άλλα verify, τα οποία δεν βρίσκονται στο pdf (δηλαδή ένα άσχετο που τρέξαμε καταλάθος έβγαλε ένα σφάλμα - δυστυχώς ξέχασα ποιο, κάτι με μια συντομογραφία ήταν). Να το αγνοήσουμε;


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Jim D. Ace on December 17, 2015, 23:57:21 pm
νομιζω ο χατζο ειχε πει οτι μαλλον δεν θα καταφερουμε να κανουμε Verify ολα τα τεστς περα απο καποια βασικα
τα υπολοιπα θελουν κι αλλη δουλεια νομιζω


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on December 18, 2015, 01:34:11 am
Εμένα με ενδιαφέρει να έχετε σωστά το geometry και το wiring. Τα υπόλοιπα μην τα κοιτάξετε


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on January 19, 2016, 21:53:45 pm
Για την εργασία θα χρειαστώ τον κώδικα της vhdl, testbench και μερικά screenshots σε pdf. Μη μου στείλετε κανένα άλλο αρχείο.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: nohponex on January 19, 2016, 22:09:38 pm
Για την εργασία θα χρειαστώ τον κώδικα της vhdl, testbench και μερικά screenshots σε pdf. Μη μου στείλετε κανένα άλλο αρχείο.

Embeded όλα στο ίδιο .pdf;


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on January 19, 2016, 23:09:50 pm
Όλα μέσα!!!


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Μεταλλαγμένη Πάπια on December 15, 2016, 15:40:35 pm
To testbench με τι λογική το γράφουμε; Εγώ πχ θέλω μόνο ένα clock με περίοδο 1sec να πηγαίνει σε ένα module που έχω γράψει (verilog). Πώς το κάνω αυτό;
Έχω διαβάσει αυτό, αλλά δεν πολυκαταλαβαίνω
https://people.ece.cornell.edu/land/courses/ece5760/Verilog/LatticeTestbenchPrimer.pdf


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Grecs on December 15, 2016, 17:27:40 pm
To testbench με τι λογική το γράφουμε; Εγώ πχ θέλω μόνο ένα clock με περίοδο 1sec να πηγαίνει σε ένα module που έχω γράψει (verilog). Πώς το κάνω αυτό;
Έχω διαβάσει αυτό, αλλά δεν πολυκαταλαβαίνω
https://people.ece.cornell.edu/land/courses/ece5760/Verilog/LatticeTestbenchPrimer.pdf

module mycircuit_tb ();
.......  
reg clk, rst;   //πρεπει να δηλωσεις reg οτιδηποτε σεταρεις τιμες σε τεστ
...........
wire output1;
wire output2;
............

mycircuit DUT(      // δηλωνεις το design under test δηλαδη το module που σχεδιασες και feedareis sta input το clk το rst και οτιδηποτε αλλο εχεις σαν εισοδο μη ξεχασεις τα output να τα δηλωσεις wire πιο πριν
......
.clk(clk)
.rst(rst)
.....
);


initial begin
  clk = 1'b0;
  rst = 1'b1;
  repeat(4) #10 clk = ~clk;
  rst = 1'b0;
  forever #10 clk = ~clk; // generate a clock
end

initial begin
#20
//(αλλαζεις τιμες εισοδου του κυκλωματος σου)
#10
//(αλλαζεις τιμες εισοδου του κυκλωματος σου)
#5
//(αλλαζεις τιμες εισοδου του κυκλωματος σου)
#25
//(αλλαζεις τιμες εισοδου του κυκλωματος σου)
.........
.........
#100 finish;
end
endmodule


ΥΓ επειδη καπου αλλου ειδα οτι τρεχεις verilog σε iverilog και κανεις test σε testebench. Να ξερεις οτι το testbench ελεγχει μονο αλγοριθμικα αν ειναι σωστο το design σου. ενδεχεται το synthesize (δηλαδη η υλοποιηση του) να μην γινεται καν ή να χει διαφορες στην συμπεριφορα. Το iverilog δεν κανει synthesize.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Μεταλλαγμένη Πάπια on December 16, 2016, 10:54:56 am
Σε ευχαριστώ, θα τον δοκιμάσω και στη νησίδα με τα εργαλεία της Cadence όταν ξαναπάω.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Xbaremenos on December 16, 2016, 16:28:29 pm
Ρε παίδες, στο set_attribute library ... τι βάζουμε  ? Μέσα στο αρχείο Path είναι μονο το lib_search_path...


Μιλαμε για ψηφιακο σχεδιο
Κανα χελπ ?


Edit : Άκυρο, αυτα παθαίνει κανείς αν δεν βλέπει όλο τον φάκελο. Είχα ξεχάσει το tcl.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on December 16, 2016, 21:07:46 pm
Την Δευτέρα η νησίδα θα είναι ανοιχτή μέχρι τις 11:30. Μετά ο Τάσος θα φύγει για εξωτερικές δουλειές και θα επιστρέψει στις 16:30. Αν θέλετε να δουλέψετε εκείνες τις ώρες να πάτε νωρίτερα και να συνεννοηθείτε μαζί του.
Την Τρίτη θα ανοίξει στις 12.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Μεταλλαγμένη Πάπια on December 20, 2016, 15:39:21 pm
Όταν πάω να κάνω elaborate μου πετάει πάντα αυτό το error

ncelab: *F,CUMSTS: Timescale directive missing on one or more modules.

Το ίδιο είτε προσπαθώ να τρέξω με δικά μου αρχεία είτε με του παραδείγματος. Σε κάθε περίπτωση, στο tcl αρχείο που φορτώνω, υπάρχει εντολή define_clock ... , απότι διαβάζω συνήθως όταν δεν υπάρχει αυτή βγαίνει αυτό το error. Τι άλλο μπορεί να φταίει;


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: Leo_Paranoid on December 20, 2016, 16:45:37 pm
Παρατηρώ ότι υπάρχει μια σύγχυση με την σύνδεση του rtl και του nclaunch. Σας είπα στο εργαστήριο ότι μάθατε μια διαδικασία που στην πραγματικότητα την κάνουν 3 άτομα. Ο καθένας λειτουργεί ανεξάρτητα και συνήθως δεν επικοινωνεί άμεσα με τους υπόλοιπους. Άρα και τα προγράμματα είναι ανεξάρτητα μεταξύ τους.

Το timescale του nclaunch δεν έχει καμία σύνδεση με το clock που ορίσαμε στον rtl. Η λύση στο πρόβλημα σου είναι να βάλεις στο advanced options του elaborator στο πεδίο gerneral/default timescale 1ns/1ps.

Διαβάστε το tutorial που σας δίνω. Τα γράφει όλα αναλυτικά.


Title: Re: [Σχεδίαση Συστημάτων VLSI] Απορίες σχεδιαστικής εργασίας - Ψηφιακή Σχεδίαση
Post by: mariothomo on December 19, 2017, 18:31:35 pm
Πως εισάγουμε τις βιβλιοθήκες στον verilog compiler?