FPGA ile hesap makinesi

Başlatan ArifAhmet, 01 Mayıs 2014, 19:17:45

ArifAhmet

Merhaba, internette arattım ama bişey bulamadım. Elinde fpga için hesap makinesi şematiği olan varmı ?
Yaşasın Open Source!

speak48

hesap makinası dediğin ne arkadaş

ArifAhmet

mantık kapılarıyla basit 8 bitlik toplayıcı
Yaşasın Open Source!

kralsam


MC_Skywalker

1 bitlik örmnek



    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;

    entity full_adder is
          Port ( X        : in     STD_LOGIC;
                    Y        : in     STD_LOGIC;
                    Z        : in     STD_LOGIC;
                   SUM    : out   STD_LOGIC;
                   CARRY : out   STD_LOGIC);
    end full_adder;

    architecture Behavioral of full_adder is
          COMPONENT half_adder
                 PORT( A : IN std_logic;
                            B : IN std_logic;
                           Sum : OUT std_logic;
                           Carry : OUT std_logic   );
          END COMPONENT;
          signal carry1,carry2,sum1:STD_LOGIC;
    begin
          Half_Adder_1: half_adder PORT MAP( A => X, B => Y, Sum => sum1 ,Carry => carry1 );
          Half_Adder_2: half_adder PORT MAP(  A => sum1,  B => Z, Sum =>SUM , Carry =>carry2 );
          CARRY<=carry1 OR carry2;
    end Behavioral;


ArifAhmet

full adder tasarımını biliyorum. Benim elimde 10 tane switch var. ilk swtchleri verip butona basacam sonra o switchler ikinci sayıyı girmek için ayarlacam.
Yaşasın Open Source!

MC_Skywalker

Pardon ben yanlış anlamışım. Sen ALU dan bahsediyormuşsun.

speak48

full adder tasarımın bilmeden
mantık kapılarıyla nasıl adder tasarlıyacan.

önce bi logic öğrenin
sonra rtl öğrenin 
rtlde temel işleri isterseniz sentezleyici yapar isterseniz siz yaparsınız.


ArifAhmet

Alıntı yapılan: speak48 - 09 Mayıs 2014, 15:33:39
full adder tasarımın bilmeden
mantık kapılarıyla nasıl adder tasarlıyacan.

önce bi logic öğrenin
sonra rtl öğrenin 
rtlde temel işleri isterseniz sentezleyici yapar isterseniz siz yaparsınız.



full adder tasarımını biliyorum, basit düzeyde logic biliyorum, rtl hakkında da bilgi sahibiyim ve rtl seviyesinde tasarım yaptım.

elimde 10 switch var. daha önceden 5 bitlik bir hesap makinesi yaptım. fakat istediğim bu 10 tane switch'i full adderin her iki girişinede bağlamak. butona basıldığında A bacakları pasif b bacakları aktif olacak. bunu istiyorum sadece
Yaşasın Open Source!

speak48

input [9:0] switch;
wire [4:0] alu_in_a;
wire [4:0] alu_in_b;

assign alu_in_a=switch[4:0];
assign alu_in_b=switch[9:5];

10 biti ikitane 5 bit girişe bölüştürecen işte

ArifAhmet

Alıntı yapılan: speak48 - 10 Mayıs 2014, 12:44:07
input [9:0] switch;
wire [4:0] alu_in_a;
wire [4:0] alu_in_b;

assign alu_in_a=switch[4:0];
assign alu_in_b=switch[9:5];

10 biti ikitane 5 bit girişe bölüştürecen işte

Bunu yaptım zaten. benim istediğim 10 tane fulladder tasarlayıp bu on switch'i A ve B girişlerine bağlamak. Bir buton yardımı ile de A girişlerini pasif hale getirip B girişlerini aktif etmek.
Yaşasın Open Source!

speak48

buradan sizin dediğinize çevirmek sizin  rtl tasarımınıza kalmış .

input [9:0] switch;
input [1:0] button.;
reg [9:0] alu_in_a;
reg [9:0] alu_in_b;


always@(posedge clk)
begin
case(button)
0:alu_in_a<=alu_in_a;         alu_in_b<=alu_in_b;
1:alu_in_a<=switch;         alu_in_b<=alu_in_b;
2:alu_in_a<=alu_in_a;         alu_in_b<=switch;
3:alu_in_a<=alu_in_a;         alu_in_b<=alu_in_b;
end

ArifAhmet

Alıntı yapılan: speak48 - 10 Mayıs 2014, 13:38:08
buradan sizin dediğinize çevirmek sizin  rtl tasarımınıza kalmış .

input [9:0] switch;
input [1:0] button.;
reg [9:0] alu_in_a;
reg [9:0] alu_in_b;


always@(posedge clk)
begin
case(button)
0:alu_in_a<=alu_in_a;         alu_in_b<=alu_in_b;
1:alu_in_a<=switch;         alu_in_b<=alu_in_b;
2:alu_in_a<=alu_in_a;         alu_in_b<=switch;
3:alu_in_a<=alu_in_a;         alu_in_b<=alu_in_b;
end
Fakat ben VHDL ile hiç çalışmadım. Verilog hakkında temel bilgim var. Birbirlerine benzeselerde biraz farklılık olabiliyor. Ayrıca Bunu şematik tasarım olarak gerçekleyecektim.
Yaşasın Open Source!

speak48

#13
bu zaten verilog.
şematik yada hdl rtl her yerde rtldir.
temel bilgilerini yeniden gözden geçirmelisin.


https://www.mediafire.com/?l1zmmip3z77bled