고위 합성 언어 어셈블러를 만든다. 그 9

개요



고위 합성 언어 어셈블러를 만든다.
연습 문제, 해 보았다.

모든 가산기를 만들 수 있습니다.


make 8
in 0 2
wire 3 5
xor 1 2 3
and 1 2 4
xor 0 3 7
and 0 3 5
or 4 5 6
out 6 7


진리표를 표시.





아티팩트



회로도를 표시.





아티팩트



컴파일하고 verilog 생성.


module x(input a, input b, input c, output g, output h);
    assign d = b ^ c;
    assign e = b & c;
    assign h = a ^ d;
    assign f = a & d;
    assign g = e | f;
endmodule

module testbench;
    reg a, b, c;
    x u(.a(a), .b(b), .c(c), .g(g), .h(h));
    initial
    begin
        $display("a b c g h ");
        $monitor("%b %b %b %b %b ", a, b, c, g, h);
        a = 0; b = 0; c = 0; #10;
        a = 0; b = 0; c = 1; #10;
        a = 0; b = 1; c = 0; #10;
        a = 0; b = 1; c = 1; #10;
        a = 1; b = 0; c = 0; #10;
        a = 1; b = 0; c = 1; #10;
        a = 1; b = 1; c = 0; #10;
        a = 1; b = 1; c = 1; #10;
        $finish;
    end
endmodule


아티팩트



실행 결과



a b c g h
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1


이상.

좋은 웹페이지 즐겨찾기