library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY cldf IS
PORT
( a : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
b : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
ci : IN STD_LOGIC;
sum : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
co : OUT STD_LOGI );
END cldf;
ARCHITECTURE df OF cldf IS
SIGNAL h_sum : STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL g : STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL p : STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL cin : STD_LOGIC_VECTOR(3 DOWNTO 1);
BEGIN
h_sum <= a XOR b;
g <= a AND b;
p <= a OR b;
PROCESS (g,p,cin)
BEGIN
cin(1) <= g(0) OR (p(0) AND ci);
inst: FOR i IN 1 TO 2 LOOP
cin(i+1) <= g(i) OR (p(i) AND cin(i));
END LOOP;
co <= g(3) OR (p(3) AND cin(3));
END PROCESS;
sum(0) <= h_sum(0) XOR ci;
sum(3 DOWNTO 1) <= h_sum(3 DOWNTO 1) XOR cin(3 DOWNTO 1);
END df;
Since a fulladder can be obtained by using 2 halfadders & 1 OR gate.....so we have to call an halfadder program as well as an OR program......this can be implemented easily with the help of structural model rather than dataflow and behavoioural model
Quartus is an EDA tool provided by Altera. The very purpose of EDA tools is to simulate hardware description languages. VHDL is a hardware description language. Hence, Quartus is used to simulate VHDL programs.
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity fadf is Port ( ain : in STD_LOGIC; bin : in STD_LOGIC; cin : in STD_LOGIC; sum : out STD_LOGIC; cout : out STD_LOGIC); end fadf; architecture df of fadf is begin sum<= ain xor bin xor cin; cout<= (ain and bin) or ( bin and cin) or (ain and cin); end df;
Verilog HDL / VHDL is a hardware description language used to implement a hardware on a computer virtually. It means that we can append all the attributes of a hardware to a computer program and verify as to how it works. But there may be differences in its behavior when it is actually implemented physically. For example, there may be an unexpected time delay. So, it is required to verify the design physically. Hence, we dump this Verilog / VHDL code into an FPGA / CPLD and verify the design physically. In other words, Verilog HDL / VHDL program is used to verify the design on a computer where as FPGA / CPLD implementation is used to verify the design on an IC.
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity has isPort ( a : in STD_LOGIC;b : in STD_LOGIC;s : out STD_LOGIC;c : out STD_LOGIC);end has;architecture structural of has is-- component declarationcomponent xorgPort ( p : in STD_LOGIC;q : in STD_LOGIC;r : out STD_LOGIC);end component;component andgPort ( x : in STD_LOGIC;y : in STD_LOGIC;z : out STD_LOGIC);end component;beginu0:xorg port map (a,b,s);u1:andg port map (a,b,c);end structural;
In structural modeling of VHDL, the concept of components is used. In this model, the system to be designed is considered as a combination of sub structures. These sub structures are called components.For example, a full adder is a combination of two half adders and an or gate. Hence, the components used for designing a full adder arehalf adderOR gateInitially, these components are mentioned in the architecture of a full adder VHDL program. We call this as component initiation. Then the components are called onto the main program and used.Remember, we are using the functionality of the components in main program but we are not coding them in the main program. The code for the component programs will be present somewhere else in the project.Means, code them once and use them infinite number of times.
Half adder is a combinational circuit which can add two bits. It contains two inputs and two outputs. The same is implemented in entity declaration of VHDL program. The outputs are related to inputs as follows: SUM output is obtained by XORing the inputs and CARRY output is obtained by ANDing the inputs i. e. multiplication. The VHDL code for half adder using data flow model is given below: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity had is Port ( a : in STD_LOGIC; b : in STD_LOGIC; s : out STD_LOGIC; c : out STD_LOGIC); end had; architecture df of had is begin s<= a xor b; c<= a and b; end df;
A function is a subprogram written in VHDL. This program can be called and used in other programs.
After compiling a hardware description language like VHDL, it is required to apply inputs to the program in order to obtain out puts. Applying the inputs involves initial conditions. As the systems designed using VHDL are electronic, the initial conditions plays a vital role. Hence, all these conditions along with the information as to where the input is expected to change from 1 to 0 or 0 to 1 is provided to the VHDL program. This is done in the form of a wave or another VHDL program. These are called VHDL test benches. In other words, test benches are the means of applying inputs to VHDL program.
VHDL is a hardware description language. It describes the functionality of a hardware as a program. If we know the architecture of 8085, the same can be implemented or coded using VHDL.
Since a fulladder can be obtained by using 2 halfadders & 1 OR gate.....so we have to call an halfadder program as well as an OR program......this can be implemented easily with the help of structural model rather than dataflow and behavoioural model
VHDL is a hardware description language. The purpose of any HDL is to represent hardware as a program. We can write a program (code) for any digital circuit using VHDL. With the help of this code, the output of the circuit can be observed before actually designing it physically.
There are 4 main differences between C programming and VHDL programming. C is a mid-level language, while VHDL is a hardware description language. C can handle one type of instruction, while VHDL can handle two. C does not require as much resource usage as VHDL. C can be written only with logical thinking, but a VHDL programmer must understand hardware circuits.
VHDL program follows IEEE library. This means that all the data types, commands, keywords etc. used in a VHDL program are stored in a library called IEEE library. This library will be available in the EDA tool which is executing the VHDL program. 1164 is a package where all the logic gates are defined. This is a sub part of IEEE library. As encoder program requires logic gates, we need to use 1164 package in the code.
VHDL is a hardware description language. Its very purpose is to describe hardware in the form of a program. This program can be understood by the user and the system as well. By implementing the hardware as a code, it is easier to verify its functionality. Hence, to test hardware before it could actually be designed, we should use VHDL.
PROGRAM:Library ieee;use ieee.std_logic_1164.all;entity ha1 isport(a,b:in bit;s,c:out bit);end ha1;architecture ha1 of ha1 isbegins
VHDL is basically a hardware description language. To describe hardware as a program that can be dumped into a PLD, we use VHDL. It is essential to represent hardware as program so that it can be tested before realizing it physically. If there are any errors, they can be corrected here itself.