vlsi mini projet
TRANSCRIPT
![Page 1: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/1.jpg)
BASIC VLSI DESIGN MINI PROJECT REPORT BINARY 4-BIT UP/DOWN RIPPLE COUNTER REALIZATION IN VERILOG AND VHDL
PERFORMED BY JEYAHARIPRAKASH.M Reg.no:9907005096 PREFINAL YEAR ECE-B
![Page 2: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/2.jpg)
BINARY 4-BIT UP/DOWN RIPPLE COUNTER REALIZATION IN VERILOG AND VHDL
AIM: To realize a binary 4-bit up/down ripple counter in verilog and vhdl. Apparatus required: Synthesis tool : Xilink ISE. Simulation tool : ModelSim Simulator. Theory: Flip-flops can be another name for bistable circuits that change state on the application of a trigger pulse. The simplest of all flip- flops is the SR(Set-Reset) flip flop. There are two possible implementations for it. The first one uses NOR gates and the second one uses NAND gates . The difference between the two implementations is that the NOR implementation triggers for positive going pulses(Positive Logic) and the other triggers for negative going pulses(Negative Logic). The truth tables and logic symbols for both the implementations are also shown below.
S R Q Q’ 0 0 Q Q’ 1 0 1 0 0 1 0 0 1 1 x x We can see from the tables that in each of the implementations, SR flip-flop suffers from an inherent defect. It outputs an “invalid state” when both the inputs are ‘1’ &’1’ in NOR implementation and ‘0’ & ‘0’ in NAND implementation.
![Page 3: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/3.jpg)
This problem can be overcome by using additional feedback lines .The resulting flip- flop is called a JK flip-flop.
J K Qn+1 0 0 Qn 0 1 0 1 0 1 1 1 Q’n The operation of a JK flip- flop is the same as that of a SR flip- flop, except for the fact that the changes are synchronized with respect to the clock. As long as the clock is low, the S and R inputs are both one irrespective of the inputs given at J and K, and so the output state remains unchanged. We can also see from the truth table that the invalid state is also no more. As always nothing in this world comes without a catch. Likewise, when both J and K inputs are ‘1’, the output changes state. If the clock is high for a long time, then the output changes state continuously until the clock goes low. T flip- flop as the name suggests, just toggles its output for every clock pulse. It is constructed by shorting the J and K inputs of the JK flip- flop. The clock width constraint holds ground for this flip- flop.
Counters: As said earlier, counters are constructed using flip- flops as their fundamental units. We will use the edge triggered JK flip-flop to construct counters. Counters are of two types. Asynchronous and Synchronous counters. We will limit our discussions to synchronous counters alone.
![Page 4: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/4.jpg)
Synchronous Up-Counter Using JK Flip-Flop:
Synchronous Down-Counter Using JK Flip-Flop:
shows an up-down-counter using JK flip- flop. If the UP / Down signal is high the counter acts as an up counter and if it s low, the system acts as a down counter.
![Page 5: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/5.jpg)
Synchronous 3-bit Up/Down-Counter Using JK Flip-Flop:
Procedure: For VHDL Program: 1.The 4 bit binary up down counter is designed. 2.The VHDL program source code for the circuit is written. 3.It is implemented in Model Sim and Simulated. 4.Signals are provided and the output Waveforms are viewed. 5.Synthesis this program in XILINX and flashed to the FGPA. For Verilog HDL Program: 1.The 4 bit binary up down counter is designed. 2.The Verilog program source code for the circuit is written. 3.It is implemented in Model Sim and Simulated. 4.Signals are provided and the output Waveforms are viewed. 5.Synthesis this program in XILINX and flased to the FGPA.
![Page 6: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/6.jpg)
JK FLIPFLOP CODING:- library ieee; use ieee.std_logic_1164.all; entity jk is port(clk,j,k,clr:in std_logic; q,qbar:inout std_logic); end jk; architecture flop of jk is begin process(j,k,clk,clr) begin if (clr='1') then if(rising_edge(clk)) then if(j='0' and k='0') then q<=q; qbar<=not q; elsif(j='0' and k='1') then q<='0'; qbar<='1'; elsif(j='1' and k='0') then q<='1'; qbar<='0'; else q<=not q; qbar<=not qbar; end if; end if; else q<='0'; qbar<='1'; end if; end process; end flop;
![Page 7: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/7.jpg)
4-BIT UP/DOWN COUNTER:- VERILOG CODING:- module jkff(q,qbar,j,k,clk,rst); input j,k,clk,rst; output q,qbar; reg q; assign qbar=~q; always@(posedge clk) if(~rst)
q=1'b0; else
case ({j,k}) 2'b00:q=q; 2'b01:q=1'b0; 2'b10:q=1'b1; 2'b11:q=~q;
endcase endmodule module ad(q,qbar,j,k,clk,rst); inout [3:0] q,qbar; input j,k; input clk,rst; wire a,b,c,d,e,f,x; jkff f0(q[0],qbar[0],j,k,clk,rst); and (a,q[0],x); and (b,qbar[0],(~x)); or(c,a,b); jkff f1(q[1],qbar[1],c,c,clk,rst); and (d,q[1],a); and (e,qbar[1],b); or(f,d,e); jkff f2(q[2],qbar[2],f,f,clk,rst); and (g,q[2],d); and (h,qbar[2],e); or(i,g,h); jkff f3(q[3],qbar[3],i,i,clk,rst); endmodule
![Page 8: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/8.jpg)
4-BIT UP/DOWN COUNTER:- VHDL CODING:- library ieee; use ieee.std_logic_1164.all; entity ud is port(clk,j,k,clr:in std_logic; q,qbar:inout std_logic_vector(3 downto 0)); end ud; architecture updown of ud is component jk port(clk,j,k,clr:in std_logic; q,qbar:inout std_logic); end component; signal a,b,c,d,e,f,g,h,i,x:std_logic; begin d1:jk port map(clk,j,k,clr,q(0),qbar(0)); a<=q(0)and x; b<=(qbar(0) and (not x)); c<=a or b; d2:jk port map(clk,c,c,clr,q(1),qbar(1)); d<=q(1) and a; e<=qbar(1) and b; f<=d or e; d3:jk port map(clk,f,f,clr,q(2),qbar(2)); g<=q(2) and d; h<=qbar(2) and e; i<=g or h; d4:jk port map(clk,i,i,clr,q(3),qbar(3)); end updown;
![Page 9: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/9.jpg)
![Page 10: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/10.jpg)
WAVEFORM OF UP COUNTER:-
![Page 11: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/11.jpg)
WAVEFORM OF DOWN COUNTER:-
![Page 12: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/12.jpg)
Up Counter –ModelSim Simulator Waveform:
Down Counter –ModelSim Simulator Waveform:
![Page 13: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/13.jpg)
TECHNOLOGY SCHEMATIC:-
![Page 14: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/14.jpg)
Internal blocks of FGPA:
LUT(Look-Up Table) Diagram:
![Page 15: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/15.jpg)
LUT2 ( INIT=9) Schematic View:
Truth Table:
Karnaugh Map:
![Page 16: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/16.jpg)
LUT3 (INIT=A9) Schematic View:
Truth Table:
Karnaugh Map:
![Page 17: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/17.jpg)
LUT3 (INIT=5C) Schematic View:
Truth Table:
Karnaugh Map:
![Page 18: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/18.jpg)
LUT4 (INIT=AAA9) Schematic View:
Truth Table:
Karnaugh Map:
![Page 19: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/19.jpg)
![Page 20: Vlsi Mini Projet](https://reader037.vdocuments.site/reader037/viewer/2022100223/5468ed00b4af9f1c348b48a1/html5/thumbnails/20.jpg)
Conclusion: Thus the binary 4-bit Up/Down ripple counter is designed in Vhdl and Verilog HDL and the output is verified.