download C programming for Microcontrollers by Joe Pardue free

| 0 comments |
Download here C Programming for Microcontrollers Featuring ATMELs AVR Butterfly and the free WinAVR Compiler by Joe Pardue for free. This is a good book on learning how to program AVR microcontroller using C program recommended by many. The book teaches basics of programming AVR, connecting the microcontroller to the PC for programming, using free Compilers, downloading the program into the microcontrollers. Then it teaches how to create program for AVR microcontroller to control input/ output ports with example of making LEDs connected to the port turn on and off. It also teaches how to program AVR microcontroller to communicate with PC using serial communication via the USART interface. Other C programming tutorials includes programming AVR in C for the analog to digital conversion, digital to analog conversion, LCD display control and others.

C Programming for Microcontrollers Featuring ATMELs AVR Butterfly and the free WinAVR Compiler by Joe Pardue
 Download Link for C programming for Microcontrollers pdf ebook by Joe Pardue

http://www.filefactory.com/file/si1nbwgcphn/JoeC.pdf


The Book not only provides tutorials and information on C programming and ATMEL microcontrollers but also teaches soldering, making physical connections etc required in the designs. Good example illustration of using AVR microcontroller for controlling mechanical machines such as motors with pictures are provided so that reader can understand what is being done. See one such picture screenshot from the book-




Read More..

Decoder implementation using the Shift operators in VHDL

| 0 comments |
One of the different method of implementing a decoder in VHDL is to use the shift operators of vhdl language. Using these operator can shorten the code and can be extended easily to higher number of input/output bits. Here it is shown how a 3x8 decoder can be implemented using vhdl shift operator and verified and simulated using the active-hdl VHDL software.

Before going to the implementation readers may want to read other ways of implementing decoder. For this follow the following links-
  • 74LS138 Decoder design using logical gates
  • 74LS138 Decoder design using With Select statement 
  • 74LS138 3x8 decoder design with case construct in vhdl
  • 74LS138 3x8 decoder design using if else construct
In this vhdl tutorial we gonna see how the shift operator in VHDL can be used to implement a decoder. The idea of using shift operator comes from the fact that there is bit shift in the output of the decoder according the input. If we let x be 4 bit input and y be the 8 bit output then one can observe the output y being in the form- 10000000, 01000000, 00100000, 00010000 ...00000001, which shows that 1 is shifted to the right one bit according to the input x. Now x is 4 bit binary but when it is converted to integer then x as integer indicates the number of shift required.

The following VHDL code illustrates how a decoder could be realized using shift operator in vhdl:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity decoder_shift is
    generic (n : positive := 4);
    port(
    x : in std_logic_vector(n-1 downto 0);
    y : out std_logic_vector(2**n-1 downto 0)
    );
end decoder_shift;

architecture decoder_shift_arch of decoder_shift is
constant yout : bit_vector(2**n-1 downto 0) := (0=>1,others => 0);
begin
    y <= to_stdlogicvector(yout sll to_integer(unsigned(x)));
   
end decoder_shift_arch;


In the above as x input is a std_logic_vector it is first unsigned and then to integer. The shifting operater ssl is used to shift the intermediate signal yout. Since shifting operator ssl acts only on bit_vector, intermediate signal yout is defined as bit_vector. After the shifting the bit_vector is converted back to std_logic_vector using the function to_stdlogic_vector and assigned to the original output y.

The advantage of using shift operator for modelling the decoder is that it requires less code lines to implement the decoder. Another advantage is that it can be easily adopted to higher number of input/output bits by changing the generic bit number n declaration.

The code was simulated with active-hdl vhdl software and the waveform of the simulation is shown below.

decoder simulation in vhdl software

Read More..

Sejarah Visual Basic

| 0 comments |
Bahasa pemrograman yang paling awal dirancang pada tahun 1950-an dan dibuat semata-mata untuk memecahkan masalah matematika yang kompleks. Bahasa-bahasa tersebut agak membingungkan bagi orang awam. Namun hal itu bukanlah masalah berbesar, karena komputer hanya ditemukan di lembaga-lembaga riset besar. Lambat laut tentunya orang sadar bahwa teknologi komputer bisa berguna tidak hanya untuk melakukan perhitungan matematika, namun bisa berguna untuk bidang yang lain. Maka komputer pun mulai menjadi barang yang biasa ditemukan di lingkungan bisnis dan universitas. Dengan semakin banyaknya orang yang menggunakan komputer, semakin banyak pula orang yang sadar bahwa bahasa pemrograman yang rumit hanya akan menghambat perkembangan komputer itu sendiri. Pada tanggal 1 Mei 1964, penemu bahasa BASIC, yaitu Profesor John G. Kemeny dan Thomas E. Kurtz di Dartmouth College di New Hampshire menjalankan pertama kali program BASIC.

Bahasa BASIC (Beginner’s All-purpose Symbolic Instruction Code) merupakan bahasa tingkat tinggi yang berbentuk interpreter, yang memungkinkan untuk mengoperasikan komputer secara interaktif, program dapat ditulis, dijalankan, diubah dan dijalankan lagi tanpa harus melalui tahap kompilasi seperti pada bahasa tingkat tinggi lainnya yang berbentu compiler. Bahasa ini dirancang khusus untuk memudahkan tugas belajar memprogram.

Pada tahun 1975, Paul Allen, pemrogram muda yang bekerja ada perusahaan komputer Honeywall dengan teman masa kecilnya William Bill Gates menawarkan interpreter BASIC kepada Ed Robert, pemilik perusahaan MITS yang memproduksi komputer mikro Altair 8800 yang mempunyai RAM 4 KB. Kedua orang ini semasa di SMA sudah pernah mendirikan perusahaan dengan nama Traf-O-Data, tetapi tidak sukses. Ed Robert berjanji akan membeli interpreter BASIC tersebut apabila ia bisa berjalan di atas komputer Altair. Paul Allen dan Bill Gates mengembangkan interpreter BASIC tersebut tanpa pernah melihat secara langsung bentuk dari komputer Altair, apalagi menggunakannya. Apa yang mereka andalkan adalah manual dari microprocessorIntel 8080 yang digunakan di Altair dan diagram dari komputer Altair itu sendiri. Untuk mengujinya, mereka menjalankan interpreter BASIC-nya pada komputer besar dan akhirnya merekam hasilnya ke pita kertas (paper tape). Ketika Paul Allen akan mendemonstrasikan hasil kerjanya pada Ed Robert, dia teringat bahwa belum ditulis suatu program loader untuk membaca dan meletakkan interpreter BASIC yang ada di paper tape ke dalam main memory Altair. Paul Allen langsung menulis program loader tersebut dalam bahasa mesin dan memanggil interpreter BASIC dari pita kertas. Setelah beberapa menit, program berhasil masuk ke main memory. Paul Allen menyadari bahwa dia dan Bill Gates telah membuat banyak kesalahan di sana-sini, walaupun demikian, interpreter BASIC ini akhirnya dapat berjalan juga di komputer mikro Altair dan Ed Robert jadi membelinya. Untuk kedua kalinya, Paul Allen dan Bill Gates mendirikan suatu perusahaan yang disebut dengan Microsoft, yang terkenal sampai sekarang. Inilah cikal bakal dari BASIC yang terkenal itu.

Beberapa tahun kemudian muncullah bahasa pemrograman tingkat tinggi yang dengan menawarkan berbagai macam fungsi dalam pustakanya (library). Akan tetapi, untuk membuat sebuah aplikasi bisnis berbentuk grafik masih merupakan pekerjaaan yang cukup sulit untuk dilakukan. Jangankan aplikasi berbentuk grafik untuk menangani permasalahan mencetak data ke dalam printer saja sudah cukup untuk membuat pemrogram kesulitan. Belum lagi untuk membedakan antara printer satu dengan yang lainnya, walaupun keduanya mempunyai tipe yang sama, yaktu sama-sama dotmatrix, pemrogram harus terlebih dahulu membuat sebuah program yang mengakomodasi semua printer tersebut. Itulah gambaran kesulitan yang dialami oleh generasi pertama pemrogram. Dibutuhkan lebih dari 20 tahun untuk mendapatkan lingkungan pemrograman berbasis DOS yang cukup stabil.

Ketika komputer mikro tergusur oleh IBM PC, maka inilah zaman dimulainya era komputer pribadi (personal computer – PC) dengan antarmuka pemakai grafis (Graphical User Interface – GUI). Dengan munculnya Microsoft Windows, para pemakai PC bisa bekerja dalam lingkungan yang kaya grafis dan intuitif. Dengan GUI menyebabkan aplikasi-aplikasi jauh lebih mudah dipelajari dan dipakai. Hal ini sebagai ganti belajar mengetikkan dan menghafal perintah-perintah yang panjang, para pemakai cukup memilih sebuah menu dengan mengklik tombol mouse. Jendela-jendela pada layar memungkinkan pemakai untuk menjalankan lebih dari satu program secara bersamaan (multi-tasking). Kotak-kotak dialog muncul ketika sebuah program membutuhkan konfirmasi dari pemakai.

Pada tahun 1986, Dr. Bjarne Stroustrup meluncurkan bukunya yang sangat berpengaruh dengan judul The C++ Programming Language sebagai tanda dimulainya era pemrograman berorientasi objek (Object Programming Language -OOP). Pada tahun yang sama Intel meluncurkan microprocessor 32 bit yang pertama kali yakni 386. Banyak pemrogram profesional Amerika menggunakan bahasa C++ sebagai bahasa pemrogramannya ketika membangun suatu aplikasi yang berjalan di atas Windows. Pustaka-pustaka class (class library) dibangun untuk membantu kecepatan pengembangan suatu aplikasi. Terutama class yang berhubungan dengan objek.

Banyak orang percaya bahwa Windows mengawali masa berakhirnya pemrogram amatir. Dalam dunia MS-DOS, para profesional dalam di bidang non-komputer, biasanya mampu menulis aplikasi-aplikasi sederhana yang membantu mereka dalam pekerjaannya, merampingkan perhitungan yang membosankan, atau mengelola data dengan cepat. Jadi C++ bukanlah bahasa yang tepat untuk mereka. Karena yang mereka butuhkan adalah bahasa pemrograman yang cepat dan mudah dipelajari. Sementara C++ adalah bahasa yang benar-benar berbeda dengan bahasa C sebelumnya karena mengandung OOP. Pada waktu itu, sebagian besar pemrogram profesional membutuhkan waktu 6 bulan untuk akrab dengan konsep OOP seperti pengkapsulan (encapsulation), pewarisan (inheritance), dan polimorfisme (polymorphism). Namun bisakah setiap orang memahami hal-hal tersebut? Tentu tidak, apalagi tuntutan pemrograman dalam Windows begitu rumit bahkan untuk aplikasi yang paling sederhana sekalipun.

Tuntutan ini terjawab pada 1991, ketika Microsoft memperkenalkan Visual Basic versi 1.0. Sistem pemrograman Visual Basic mengemas kerumitan Windows dengan cara yang benar-benar menakjubkan. Sejumlah besar pemrogram yang kesulitan untuk mempelajari C++ atau pemrogram yang membutuhkan bahasa pemrograman yang lebih mudah dan lebih produktif untuk lingkungan Windows 3.0, dapat dengan mudah dan sukses pindah ke Visual Basic.

Dengan mengkombinasikan kemampuan bahasa Basic dan peranti desain visual, bahasa ini menyediakan kesederhanaan dan kemudahan pakai tanpa mengorbankan kinerja atau fasilitas grafis yang menyebabkan Windows menjadi lingkungan kerja yang begitu menyenangkan. Menu, tombol, textbox, font, dan semua elemen lainnya dengan mudah dapat dirancang. Dan semua fasilitas tersebut tidak membutuhkan lebih dari beberapa baris pemrograman.


Berikut Perjalanan Visual Basic (VB 1.0 Sampai VB 10)
• VB 1.0

Visual Basic 1.0 adalah salah satu bahasa komputer pertama yang mendukung pemrograman event-driven. Event-driven adalah gaya pemrograman yang sangat cocok untuk antarmuka pemakai grafis. Secara tradisional, pemrograman adalah sesuatu yang berorientasi pada proses dan langkah demi langkah. Sebagai ganti menuliskan sebuah program yang mengeplot setiap langkah dalam urutan tepat, pemrogram menuliskan sebuah program yang bereaksi terhadap tindakan pemakai seperti memilih sebuah menu, mengklik jendela, atau menggerak mouse. Suatu program yang besar dapat diganti dengan kumpulan miniprogram yang dipicu oleh event-event yang dilakukan oleh pemakai. Dan dengan Visual Basic, aplikasi seperti ini bisa dituliskan dengan cepat dan mudah. Sebagaimana kata Visual yang tersirat, pemrograman dilakukan secara visual. Ini berarti bahwa sebuah aplikasi sudah terlihat hasilnya walaupun belum dijalankan. Letak dan ukuran menu, textbox, tombol, dan elemen lainnya dapat dirancang dengan menggunakan mouse dan keyboard.

• VB 2.0
Visual Basic 2.0 dirilis pada November 1992, Cakupan pemrogramannya cukup mudah untuk digunakan dan kecepatannya juga telah di modifikasi. Khususnya pada Form yg menjadikan object dapat dibuat secara seketika, serta konsep dasar dari Class modul yg berikutnya di implementasikan pada VB 4

• VB3.0
Untuk memenuhi untuk tuntutan dari para pemrogram seiring dengan perkembangan bisnis perusahaan, beberapa tahun kemudian Visual Basic 3.0 diluncurkan dengan kinerja yang sudah ditingkatkan. Visual Basic 3.0 , dirilis pada musim panas 1993 dan dibagi menjadi versistandard dan professional. VB 3 memasukan Versi 1.1 dari Microsoft Jet Database Engine yg dapat membaca serta menulis database Jet (atau Access) 1.x Bukan hanya DAO (Data Access Object – yang berfungsi untuk mengakses database) sudah ditambahkan, tapi juga akses data visual dengan kontrol data (data control) juga sudah diberikan. Aplikasi data-browsing dapat dengan mudah dilakukan tanpa menulis kode. Kontrol OLE (Object Linking and Embedding) juga sudah ditambahkan. Visual Basic 3.0 , dirilis pada musim panas 1993 dan dibagi menjadi versistandard dan professional. VB 3 memasukan Versi 1.1 dari Microsoft Jet Database Engine yg dapat membaca serta menulis database Jet (atau Access) 1.x

VB4.0
Seiring dengan perkembangan teknologi microprocessor yang telah berbasis 386 ke teknologi Pentium, Microsoft pun kemudian meluncurkan Windows 32 bit-nya yang pertama kali yakni Windows 95. Windows 95 sangat terkenal karena menampilkan GUI dengan konsep baru yang lebih memudahkan pemakai dalam menjalankan aplikasi. Untuk menjembatani perubahan dari Windows 3.11 (16 bit) ke dalam Windows 95, Microsoft meluncurkan Visual Basic 4.0 (Agustus 1995) yang menawarkan 2 compiler yang terpisah dan berbeda, yang satu untuk pengembangan windows 16 bit dan yang lain untuk windows 32 bit. Pada versi ini, pemrogram sudah dapat membangun program dengan berbasiskan Componen Object Model (COM) yang mendukung kemampuan untuk membuat Dynamic-Link Libraries (DLLs). Inilah untuk kali pertama konsep OOP diterapkan dalam Visual Basic.

• VB5.0
Visual Basic 5.0 (February 1997), Microsoft merilis secara eksklusif Visual basic untuk versi windows 32 bit. Programmer yg menulis programnya pada versi 16 bit dapat dengan mudah melakukan import porgramnya dari VB4 ke VB5. dan juga sebaliknya, program VB5 dapat diimport menjadi VB4. VB 5 memperkenalakan kemampuan untuk membuat User Control. Kemampuan untuk membangun dan mendistribusikan ActiveX Control diberikan pada Visual Basic 5.0. Dengan ditemukannya teknologi ActiveX, baik berbentuk Active DLL (COM) ataupun ActiveX Control (OCX).

• VB6.0
pada 1998, Microsoft meluncurkan Visual Basic 6.0 dengan 3 fitur projek baru: Data Project, DHTML Application, IIS Application. Dengan 3 senjata baru ini, diharapkan pemrograman Visual Basic sudah mampu untuk membuat aplikasi internet yang handal.

• VB7.0
Visual Basic .NET (VB 7), dirilis pada tahun 2002, Beberapa yang mencoba pada versi pertama .NET ini mengemukakan bahwa bahasa ini sangat powerful tapi bahasa yg digunakan sangat berbeda dengan bahasa sebelumnya, dengan kekurangan diberbagai area, termasuk runtime-nya yang 10 kali lebih besar dari paket runtime VB6 serta peningkatan penggunan memory.


• VB8.0

Visual Basic 2005 (VB 8.0) , merupakan iterasi selanjutnya dari Visual Basic .NET. dan Microsoft memutuskan untuk menghilangkan kata kata .NET pada judulnya. Pada Rilis ini , Microsoft memasukan beberapa fitur baru, diantaranya: 
  1. Edit and Continue , mungkin inilah kekurangan fitur terbesar dari VB .NET . pada VB 2005 ini kita diperbolehkan melakukan perubahan kode pada saat program sedang dijalankan 
  2. Perbaikan pada Konversi dari VB ke VB NET12Visual Basic .NET 2003 (VB 7.1) , dirilis dengan menggunakan NET framework versi 1.1. 


• Visual Basic 2005 Express

Visual Basic 2005 Express , merupkan bagian dari Product Visual Studio. Microsoft membuat Visual Studio 2005 Express edition untuk pemula dan yg gemar dengan VB, salah satu produknya adalah Visual Basic 2005 Express yg merupakan produk gratis dari Microsoft


• VB9.0

Basic “Orcas” (VB 9.0) , dijadwalkan akan dirilis pada tahun 2007 dan dibangun diatas .NET 3.5. Pada rilis ini , Microsoft menambahkan beberapa fitur , diantaranya : 
  1. True Tenary operator , yaitu fungsi If(boolean,value, value) yg digunakan untuk menggantikan fungsi IIF 
  2. LINQ Support 
  3. Ekspresi Lambda 
  4. XML Literals 
  5. Nullable types 
  6. Type Inference 


• VB10.0

Visual Basic ‘VBx’ (VB 10.0) , Visual Basic 10, yang juga dkenal dengan nama VBx, akan menawarkan dukungan untuk Dynamic Language Runtime. VB 10 direncanakan akan menjadi bagian dari SilverLight 1.1

Beberapa Fungsi Komponen-Komponen VB : 
  1. Text Box : Text box merupakan kontrol yang dipakai sebagai tempat untuk mengisi maupun menampilkan data. Contohnya pada aplikasi penjualan ini yaitu text box diisi dengan nama-nama stock barang yang akan disimpan ke dalam database.
  2. Label : Label merupakan kontrol yang dipakai sebagai tempat untuk menampilkan keterangan. 
  3. Command Botton : Command button merupakan kontrolyang dipakai sebagai tombol untuk melakukan sebuah proses. 
  4. Combo Box: Combo box merupakan kontrol yang dipakai sebagai tempat untuk menampilkan daftar pilihan. Dengan combo box kita tinggal memilih pilihan yang ada pada combo box tersebut. 
  5. List Box : List Box memiliki fungsi yang hamper sama dengan combo box, yaitu menampilkan daftar. Perbedaannya, pada combo box hanya satu pilihan yang terlihat sebelum combo box diklik, sedangkan pada list box dapat menampilkan beberapa pilihan. 
  6. Option Botton : Option button berfungsi untuk menampilkan daftar pilihan. 
  7. Frame: Frame berfungsi untuk mengelompokan kontrol-kontrol pada form menjadi satu bagian. 
  8. List Box : Digunakan Untuk Menampilkan Daftar Pilihan Yang Bisa Digulung. 
  9. Hscroll bar : Untuk Penggulungan Dengan Langkah Lebar Dengan Indikasi Posisi Pemilihan Dlm Posisi Horizontal. 
  10. Vscroll bar: Untuk Penggulungan Dengan Langkah Lebar Mengindikasikan Posisi Pemilihannya Vertical. 
  11. Timer : Untuk Penghitung Waktu Event Dalam Interval Yang Ditentukan. 
  12. Drive list box : Untuk Menampilkan Disk Drive Yang Di Miliki Komputer. 
  13. Dir list box : Menampilkan Direktori Dan Path. 
  14. File list box : Menampilkan Sebuah Daftar File. 
  15. Shape : Untuk Memasang Kontrol Yang Mampu Menghasilkan Sarana Agar Peamakia Bisa Menggambar Berbagai Bentuk. 


Sumber : wikipedia
Read More..

Design of Analog CMOS Integrated Circuits Download Ebook Free

| 0 comments |
Download Design of Analog CMOS Integrated Circuits ebook free written by Behzad Razavi. This book is used as a textbook at the University of California to teach graduate students the analysis and design of Integrated Circuit using CMOS technology. This book is not meant for RF circuit design using CMOS like the The Design of CMOS Radio Frequency Integrated Circuits book by Thomas Lee. This book focuses on the single stage amplifiers, differential amplifers, feedback networks, operational amplifers, frequency response, stability, frequency compensation for IC design. It does however contain the an introduction to analog design, the physics of MOS, CMOS processing steps and layout and packaging chapter. For RF design besides the above mentioned contents of amplifiers the other useful content are the analysis of oscillators and phase locked loop.


Download link for Analog CMOS Integrated Circuits:

http://www.filefactory.com/file/6qb7t9c1fa3r/Behzad_Razavi_Design_of_Analog_CMOS_Integrated_Circuits__2003.pdf

This book provides excellent analysis of different types and configuration of CMOS amplifiers, frequency response, non-linearities, noise bandwidth, stability, feedback network configuration etc.
Read More..

Download Solidworks 2014 Software free

| 0 comments |
Download Solidworks 2014 software free from the links below. Solidworks is a 3D CAD software widely used for prototyping and simulating engineering designs. It helps engineers in visualization of end products and create innovative products before manufacturing. The designed product files can be exported to other engineering design software or design files from other CAD software can be imported to Solidworks and make appropriate changes to the design. Various materials can be used for the design of various parts and then various simulation- thermal, stress, vibrational, fluid flow etc simulation can be performed to visualize the performance of the designed product. Drawing tools of Solidworks makes it easy to model complex designs and create truly unique product designs.


Download links of Solidworks 2014 for 32 bit OS:

https://safelinking.net/p/86a5e71f9d 
 or,
https://safelinking.net/p/6b73f1053a  
or,
https://safelinking.net/p/65421cc440
https://safelinking.net/p/4693c9d9b5
https://safelinking.net/p/5dd2b46b8e
https://safelinking.net/p/9acec14ac7
https://safelinking.net/p/c077167cab
https://safelinking.net/p/d19633fb28
https://safelinking.net/p/fed852c3aa
https://safelinking.net/p/588257ac80
 


Download link of Solidworks 2014 for 64 bit OS:

https://safelinking.net/p/1fa4572987 
or,
https://safelinking.net/p/bdd2f8c8dd 
or,
https://safelinking.net/p/4d1fb418e4
https://safelinking.net/p/c76cab1461
https://safelinking.net/p/0be0c9eec3
https://safelinking.net/p/0d4a1d87f0
https://safelinking.net/p/fbaae3966a
https://safelinking.net/p/cc5e514a4c
https://safelinking.net/p/251f2792c8
https://safelinking.net/p/67315c6f1b
https://safelinking.net/p/be41f9752b


 For electronics product designers the design can be quickly prototyped onto Printed Circuit board(PCB) and electronics components can be created easily with Solidworks from the component datasheets from manufacturers. Once the design architecture is satisfactory it can be sent for customer review.
Read More..

Code Converter VHDL

| 0 comments |
In digital system, many types of code exist that are used for different application. Binary Codes, Excess-3 codes and Gray codes are 3 different codes that are used in digital system. Binary codes are also called BCD(Binary Coded Decimal) and are 4 bit codes that represents 16 different decimal values. Excess-3 codes are codes obtained by adding 3 equivalent binary codes to each of the BCD binary codes starting from 0(0000). Gray codes are another type of codes which have the property that there is only one bit change in going from one code to the next.

 The following table shows the BCD, Excess-3 and the Gray codes and their relation:



A code converter is often required to convert from one code to another.

In VHDL programming we can use the concurrent statement select to convert the binary to excess-3 as follows:

library ieee;
use ieee.std_logic_1164.all;

entity bi2ex3 is
    port(x : in std_logic_vector(3 downto 0);
    y : out std_logic_vector(3 downto 0)
    );
end bi2ex3;

architecture model of bi2ex3 is
begin
    with x select
    y <= "0011" when "0000",  
    "0100" when "0001", 
    "0101" when "0010",  
    "0110" when "0011",   
    "0111" when "0100",   
    "1000" when "0101",   
    "1001" when "0110",       
    "1010" when "0111",       
    "1011" when "1000",       
    "1100" when "1001",
    "1101" when "1010",
    "1110" when "1011",
    "1111" when "1100",
    "0000" when "1101",
    "0001" when "1110",
    "0010" when others;
   
end model;

The simulated waveform obtained from a VHDL software is as follows:


Similarly we can use case statement of VHDL to construct the above code conversion truth table.
Read More..

Different ways of implementing D Flip Flip with VHDL

| 0 comments |
Shown below is a table that shows how D flip flop can be implemented in different ways with VHDL. The first row shows the same D flip flop different inputs, that is, with asynchronous and synchronous reset. The second row shows different way of writing the behavior of the D flip flop.




DFF without asynchronous reset
DFF with asynchronous reset
DFF with synchronous enable
DFF with synchronous enable
library ieee;
use ieee.std_logic_1164.all;
entity dff is
port(
d : in std_logic;
q : out std_logic;
clk : in std_logic
);
end dff;
architecture dff_arch of dff is
begin
process(clk)
begin
if(clkevent and clk = 1)then
q <= d;
end if;
end process;
end dff_arch;
library ieee;
use ieee.std_logic_1164.all;
entity dff is
port(
d : in std_logic;
q : out std_logic;
rst : in std_logic;
clk : in std_logic
);
end dff;
architecture dff_arch of dff is
begin
process(clk, rst)
begin
if(rst = 1)then
q <= 0;
elsif(clkevent and clk = 1)then
q <= d;
end if;
end process;
end dff_arch;
library ieee;
use ieee.std_logic_1164.all;
entity dff is
port(
d : in std_logic;
en : in std_logic;
rst : in std_logic;
clk : in std_logic;
q : out std_logic
);
end dff;
architecture dff_arch of dff is
begin
process(clk, rst)
begin
if(rst = 1)then
q <= 0;
elsif(clkevent and clk = 1)then
if(en = 1) then
q <= d;
end if;
end if;
end process;
end dff_arch;
library ieee;
use ieee.std_logic_1164.all;
entity dff is
port(
d : in std_logic;
en : in std_logic;
rst : in std_logic;
clk : in std_logic;
q : out std_logic
);
end dff;
architecture dff_arch of dff is
signal int_reg, int_next : std_logic;
begin
process(clk, rst)
begin
if(rst = 1)then
int_reg <= 0;
elsif(clkevent and clk = 1)then
int_reg <= int_next;
end if;
end process;
int_next <= d when en = 1 else int_reg;
q <= int_reg;
end dff_arch;
Implicit function call example
Explicit function call example
No function call, simple edge detect
Using if statement and function call
library ieee;
use ieee.std_logic_1164.all;
entity dff is
port(
d, clk : in std_logic;
q : out std_logic
);
end dff;
architecture dff_behave of dff is
begin
process
begin
wait until rising_edge(clk);
q <= d;
end process;
end dff_behave;
library ieee;
use ieee.std_logic_1164.all;
entity dff is
port(
d, clk : in std_logic;
q : out std_logic
);
end dff;
architecture dff_behave of dff is
begin
process
begin
wait on clk until rising_edge(clk);
q <= d;
end process;
end dff_behave;
library ieee;
use ieee.std_logic_1164.all;
entity dff is
port(
d, clk : in std_logic;
q : out std_logic
);
end dff;
architecture dff_behave of dff is
begin
process
begin
wait until clkevent and clk = 1;
q <= d;
end process;
end dff_behave;
library ieee;
use ieee.std_logic_1164.all;
entity dff is
port(
d, clk : in std_logic;
q : out std_logic
);
end dff;
architecture dff_behave of dff is
begin
process
begin
wait on clk;
if rising_edge(clk) then
q <= d;
end if;
end process;
end dff_behave;
Read More..