summaryrefslogtreecommitdiff
path: root/Example/full_adder/full_adder_structural.vhdl
diff options
context:
space:
mode:
authorRahul P2019-11-19 12:32:39 +0530
committerGitHub2019-11-19 12:32:39 +0530
commita6c0b36fcaba6c1f2d366432b2386122674b4782 (patch)
tree18a02155e45110fd6419139e48f6d9b277ab9870 /Example/full_adder/full_adder_structural.vhdl
parent2fe70dd26008b0f4920928d592290614bf47ce5d (diff)
parent6e12269c0681dcfb0d1ec927670fb9d69464af9c (diff)
downloadnghdl-a6c0b36fcaba6c1f2d366432b2386122674b4782.tar.gz
nghdl-a6c0b36fcaba6c1f2d366432b2386122674b4782.tar.bz2
nghdl-a6c0b36fcaba6c1f2d366432b2386122674b4782.zip
Merge pull request #29 from rahulp13/master
Updated nghdl
Diffstat (limited to 'Example/full_adder/full_adder_structural.vhdl')
-rw-r--r--Example/full_adder/full_adder_structural.vhdl87
1 files changed, 87 insertions, 0 deletions
diff --git a/Example/full_adder/full_adder_structural.vhdl b/Example/full_adder/full_adder_structural.vhdl
new file mode 100644
index 0000000..eb06a3d
--- /dev/null
+++ b/Example/full_adder/full_adder_structural.vhdl
@@ -0,0 +1,87 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity full_adder_structural is
+port(a: in std_logic;
+ b: in std_logic;
+ cin: in std_logic;
+ sum: out std_logic;
+ carry: out std_logic);
+end full_adder_structural;
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity andgate is
+port(a: in std_logic;
+ b: in std_logic;
+ z: out std_logic);
+end andgate;
+
+architecture e1 of andgate is
+begin
+z <= a and b;
+end e1;
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity xorgate is
+port(a: in std_logic;
+ b: in std_logic;
+ z: out std_logic);
+end xorgate;
+
+architecture e2 of xorgate is
+begin
+z <= a xor b;
+end e2;
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity orgate is
+port(a: in std_logic;
+ b: in std_logic;
+ z: out std_logic);
+end orgate;
+
+architecture e3 of orgate is
+begin
+z <= a or b;
+end e3;
+
+
+
+architecture structural of full_adder_structural is
+
+component andgate
+port(a: in std_logic;
+ b: in std_logic;
+ z: out std_logic);
+end component;
+
+component xorgate
+port(a: in std_logic;
+ b: in std_logic;
+ z: out std_logic);
+end component;
+
+component orgate
+port(a: in std_logic;
+ b: in std_logic;
+ z: out std_logic);
+end component;
+
+signal c1,c2,c3: std_logic;
+
+begin
+
+u1 : xorgate port map(a,b,c1);
+u2 : xorgate port map(c1,cin,sum);
+u3 : andgate port map(c1,cin,c2);
+u4 : andgate port map(a,b,c3);
+u5 : orgate port map(c2,c3,carry);
+
+
+end structural; \ No newline at end of file