Προς το περιεχόμενο

Γλωσσα VHDL


farfetch'd

Προτεινόμενες αναρτήσεις

Δημοσ.

Παιδια καλησπερα!!!

Exω προβλημα στην γλωσσα VHDL και αναρωτιομουν μηπως εχει επαφη κανενας με αυτη τη γλωσσα προγραμματισμου..

ΑΝ ναι κι αν ειναι προθυμος να βοηθησει ας μου πει να του στειλω με προσωπικο μηνυμα τον κωδικα που εχω φτιαξει

  • 3 εβδομάδες αργότερα...
Δημοσ.

παιδιααα γνωριζει κανεις πως μπορω να γραψω κώδικα σε verilog για κυκλωμα παραγωγης αρτιας ισοτιμιας που να διαβαζει σειριακα λεξεις των 4 bit ?

Δημοσ.

Ακολουθείς τη λεγόμενη top-down μέθοδο σχεδίασης.

 

1. Ξεκίνα με ένα abstract block diagram του κυκλώματος που θες να σχεδιάσεις (και χώρισε το σε ιεραρχικές υπο-μονάδες αν χρειάζεται).

2. Σχεδίασε το(α) flow chart του αλγορίθμου(ων) για αυτό που θες να κάνεις

 

Κάνε post αυτά σε πρώτη φάση και μετά θα σε βοηθήσω να γράψεις τον κώδικα σε Verilog. :-)

Δημοσ.

Bασικά μήπως μπορείς να με βοηθήσεις λίγο παραπάνω με τον κώδικα ?

πόσα FF θα χρειαστώ?και τι καταχωρητή πρέπει να χρησιμοποιήσω?

Δημοσ.

Τι μορφή θες, structural ή RTL? O τύπος του flip flop εξαρτάται από τη βιβλιοθήκη του chip για την οποία προορίζεται το κύκλωμα καθώς και τον τρόπο λογικής σχεδίασης που θα επιλέξεις. Συνήθως d flip-flop. Το πόσα εξαρτάται από την υλοποίηση. Κανε πρώτα αυτά που σου είπα και μετά ο κώδικας! That's the way it works. Sorry αλλά το VLSI είναι διαφορετικό από το software programming.

Δημοσ.

παιδιά , και εγώ χρειάζομαι βοήθεια στον σχεδιασμό ενός κυκλώματος παραγωγής άρτιας ισοτιμίας . Μπορείτε να δώστε μια υποδειγματική λύση και οδηγίες ? Πρέπει να υλοποιηθεί από 4 FF στα οποία θα εισάγονται σειριακά λέξεις των 4 δυαδικών ψηφίων

Δημοσ.

Τις οδηγίες τις έδωσα παραπάνω! Συγνώμη που θα γίνω κακός (έχει παραγίνει όμως!) αλλά αν δε δω κώδικα που να δείχνει ότι έχετε δουλέψει και δεν ψάχνετε έτοιμη τη λύση για να περάσετε την εργασία χωρίς να ασχοληθείτε, εγώ προσωπικά δεν θα βοηθήσω. :-)

Δημοσ.

Λοιπόν ,... αυτός είναι ο κώδικάς μου ...

 

 

module dff(data,clk,reset ,q);

 

input data, clk, reset ;

 

output q;

 

reg q;

 

always @ ( posedge clk or negedge reset)

if (~reset) begin

q <= 1'b0;

end else begin

q <= data;

end

 

endmodule

 

module two(rst,clkb,pdata);

 

output [4:0]pdata;

input clkb,rst;

wire sdata;

wire a,b,c,d,e,f,g,h;

 

dff d1(sdata,clkb,rst,a);

dff d2(a,clkb,rst,B);

dff d3(b,clkb,rst,c);

dff d4(c,clkb,rst,d);

 

dff ds1(pdata[1],clkb,rst,e);

dff ds2(pdata[2],clkb,rst,f);

dff ds3(pdata[3],clkb,rst,g);

dff ds4(pdata[4],clkb,rst,h);

 

endmodule

 

/* ο testbench είναι ακριβώς από κάτω */

 

module testit();

reg clkc,rstb;

wire [4:0]pdata2;

two tb(rstb,clkc,pdata2);

initial

begin

 

rstb=1;

clkc=0;

repeat(40) begin

 

#20 clkc=!clkc;

end

end

endmodule

 

και δεν ψάχνω για έτοιμη λύση αλλά για καθοδήγηση ... :/

Δημοσ.

το πρόβλημα είναι ότι δεν είμαι σίγουρος εάν είναι σωστό , όχι εάν το compile του δεν βγάζει λάθος.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...