
    

    <?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://ocw.cs.pub.ro/courses/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://ocw.cs.pub.ro/courses/feed.php">
        <title>CS Open CourseWare soc:laboratoare:02</title>
        <description></description>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <image rdf:resource="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico" />
       <dc:date>2026-05-01T21:55:19+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/atribuiri?rev=1772526368&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/blocuri?rev=1772527178&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/control?rev=1709210248&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/exercitii?rev=1710484823&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/flux?rev=1709210248&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/obiective?rev=1709210248&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/operatori?rev=1772526615&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/procedural?rev=1709210248&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/resurse?rev=1709460969&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/structural?rev=1709210248&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/tipatribuiri?rev=1772527833&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/tipuri?rev=1709210248&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/tldr?rev=1709210248&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico">
        <title>CS Open CourseWare</title>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <url>http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico</url>
    </image>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/atribuiri?rev=1772526368&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-03T10:26:08+03:00</dc:date>
        <title>soc:laboratoare:02:atribuiri</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/atribuiri?rev=1772526368&amp;do=diff</link>
        <description>Atribuirile continue (assign) reprezintă relații directe între semnale. Ele urmează câteva reguli:

	*  Variabila căreia îi atribuim o valoare (variabila din stânga) trebuie să fie de tip wire.
	*  Expresia din dreapta poate folosi operatori și variabile de tip wire și reg.
	*  Nu o putem folosi în interiorul unui bloc initial sau always</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/blocuri?rev=1772527178&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-03T10:39:38+03:00</dc:date>
        <title>soc:laboratoare:02:blocuri</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/blocuri?rev=1772527178&amp;do=diff</link>
        <description>Blocurile initial și always marchează secțiunile de cod procedural ale modulului, iar în interiorul lor se pot folosi construcții de control similare celor din limbajele procedurale.





Un bloc initial este un bloc ce va fi executat o singură dată și se folosește frecvent pentru inițializări sau resetarea circuitului.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/control?rev=1709210248&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-29T14:37:28+03:00</dc:date>
        <title>soc:laboratoare:02:control</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/control?rev=1709210248&amp;do=diff</link>
        <description>Construcțiile de control sunt utilizate în secțiunile procedurale de cod, adică în cadrul blocurilor initial și always, pentru a descrie comportamentul circuitului. Ele sunt:

1. Condiționale: 

	*  if:


if (sig == 0) 
begin
    a = 2;
end else begin
    a = 1;
end</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/exercitii?rev=1710484823&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-15T08:40:23+03:00</dc:date>
        <title>soc:laboratoare:02:exercitii</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/exercitii?rev=1710484823&amp;do=diff</link>
        <description>Task 0 (tutorial). Descărcați scheletul de laborator. Observați implementarea porții not.

	*  Ce tip de descriere a modulului a fost folosit pentru fiecare modul? (modul01, modul02, modul03)
	*  Testați comportamentul fiecărui modul prin simulare. Modulele de test sunt deja create.
	*  Ce părere aveți despre următorul exemplu ?</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/flux?rev=1709210248&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-29T14:37:28+03:00</dc:date>
        <title>soc:laboratoare:02:flux</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/flux?rev=1709210248&amp;do=diff</link>
        <description>Acest tip de descriere specifică relațiile dintre intrări si ieșiri sub forma unor expresii.
  [Multiplexor 4:1]  

module mux_4_to_1(
    output out,
    input in0,
    input in1,
    input in2,
    input in3,
    input sel0,
    input sel1
    );
    
assign out = 
    (in0 &amp; ~sel1 &amp; ~sel0) |
    (in1 &amp; ~sel1 &amp; sel0)  |
    (in2 &amp; sel1 &amp; ~sel0)  |
    (in3 &amp; sel1 &amp; sel0);

endmodule</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/obiective?rev=1709210248&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-29T14:37:28+03:00</dc:date>
        <title>soc:laboratoare:02:obiective</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/obiective?rev=1709210248&amp;do=diff</link>
        <description>În acest laborator, vom învăța despre tipurile de descriere a modulelor în Verilog. Acestea ne ajută să creăm module într-un mod cât mai ușor și eficient.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/operatori?rev=1772526615&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-03T10:30:15+03:00</dc:date>
        <title>soc:laboratoare:02:operatori</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/operatori?rev=1772526615&amp;do=diff</link>
        <description>Operatorii pe care îi putem folosi în Verilog sunt:

	*  Aritmetici:
		*  Unari: - (schimbare semn - complementul față de 2)
		*  Binari: +, -, *, /, % (modulo)

	*  Logici:
			*  Unari: ! (negare logică - orice nenul devine 0, 0 devine 1)
			*  Binari: &amp;&amp; (și logic), || (sau logic)</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/procedural?rev=1709210248&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-29T14:37:28+03:00</dc:date>
        <title>soc:laboratoare:02:procedural</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/procedural?rev=1709210248&amp;do=diff</link>
        <description>Folosim acest tip de descriere când dorim să specificăm funcționalitatea modulului într-un mod algoritmic.
  [Multiplexor 4:1]  

module mux_4_to_1(
    output reg out,
    input in0,
    input in1,
    input in2,
    input in3,
    input sel0,
    input sel1
    );
    
    always @(*)
    begin
        case ({sel1, sel0})
            2'b00: out = in0;
            2'b01: out = in1;
            2'b10: out = in2;
            2'b11: out = in3;
            default: out = 1'bx;
        endcase
    e…</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/resurse?rev=1709460969&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-03T12:16:09+03:00</dc:date>
        <title>soc:laboratoare:02:resurse</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/resurse?rev=1709460969&amp;do=diff</link>
        <description>*  Scheletul de laborator
	*  Tutorial debugging
	*  [Verilog Quick Reference Card]
	*  Always @ blocks
	*  Wire vs reg

Alte materiale:

	*  Verilog crash course
	*  Verilog Tips
	*  Verilog Language Reference</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/structural?rev=1709210248&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-29T14:37:28+03:00</dc:date>
        <title>soc:laboratoare:02:structural</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/structural?rev=1709210248&amp;do=diff</link>
        <description>Descrierea unui modul la nivel structural se face folosind primitive și module. Acest tip de descriere l-am folosit in laboratorul precedent și ne ajută să specificăm structura internă a modulului (elemente de circuit și legăturile dintre ele).</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/tipatribuiri?rev=1772527833&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-03T10:50:33+03:00</dc:date>
        <title>soc:laboratoare:02:tipatribuiri</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/tipatribuiri?rev=1772527833&amp;do=diff</link>
        <description>În cadrul blocurilor initial și always atribuirile pot fi de două feluri, cu semantici diferite:

	*  Atribuiri blocante: = - sunt folosite pentru descrierea logicii combinaționale (porți logice). Atribuirile blocante sunt interpretate ca executându-se secvențial, semantica fiind identică cu cea din limbajele de programare procedurale.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/tipuri?rev=1709210248&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-29T14:37:28+03:00</dc:date>
        <title>soc:laboratoare:02:tipuri</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/tipuri?rev=1709210248&amp;do=diff</link>
        <description>Comportamentul unui modul poate fi descris în trei moduri:

	*  la nivel structural
	*  la nivel de flux de date
	*  la nivel procedural</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/soc/laboratoare/02/tldr?rev=1709210248&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-29T14:37:28+03:00</dc:date>
        <title>soc:laboratoare:02:tldr</title>
        <link>http://ocw.cs.pub.ro/courses/soc/laboratoare/02/tldr?rev=1709210248&amp;do=diff</link>
        <description>*  Comportamentul unui modul poate fi descris în trei moduri:
			*  la nivel structural (folosește primitive și module)
			*  la nivel de flux de date (folosește atribuiri continue și expresii)
			*  la nivel procedural (folosește programarea procedurală) în blocuri initial și/sau always</description>
    </item>
</rdf:RDF>
