DIGITAL SYSTEM DESIGN

Size: px
Start display at page:

Download "DIGITAL SYSTEM DESIGN"

Transcription

1 DIGITAL SYSTEM DESIGN Prepared By: Engr. Yousaf Hameed Lab Engineer BASIC ELECTRICAL & DIGITAL SYSTEMS LAB DEPARTMENT OF ELECTRICAL ENGINEERING Digital System Design 1

2 Name: Registration No: Roll No: Semester: Batch: Digital System Design 2

3 CONTENTS LAB 1: INTRODUCTION TO MODELSIM... 4 LAB 2: GATE LEVEL DESIGN LAB 3: DATAFLOW LEVEL DESIGN LAB 4: BEHAVIORAL LEVEL DESIGN LAB 5: TO OBSERVE THE OPERATION OF 2 TO 1 LINE MUX LAB 6: 16 BIT RIPPLE CARRY ADDER LAB 7: BEHAVIORAL MODELS (LEVEL SENSITIVE & EDGE SENSITIVE) LAB 8: SEQUENTIAL CIRCUITS LAB 9: SEQUENTIAL CIRCUITS - II LAB 10: SEVEN SEGMENT DISPLAY LAB 11: CLOCK GENERATOR LAB 12: ASYNCHRONOUS COUNTER LAB 13: SYNCHRONOUS COUNTER LAB 14: Project Digital System Design 3

4 LAB 01 INTRODUCTION TO MODELSIM ModelSim Tutorial 1. Start ModelSim 2. Create a new project Click on File, then New, then choose Project on the drop down menu Enter your project name, in this case the project is called and2gate Choose your project location, this project is stored at C:\Temp\Projects\and2gate The default library name should be work. Click OK button 3. You will be asked if want to create the project directory. Click OK button 4. Next you will be presented with the Add Items to Project Dialog. While you can use this dialog to create new source files of add existing ones, we will not be using this option for the tutorial. We ll add source files later so just click on the Close button Digital System Design 4

5 5. You now have a project by the name of and2gate. Digital System Design 5

6 6. Now we want to add a new file to our project. Click on File, choose Add to Project, and choose New File Choose Verilog as the file type In the File name: box enter the desired file name, in this case the file is named and2gate.v Click on the OK button 7. The and2gate.v file has been added to your project. Digital System Design 6

7 8. Double-click on the and2gate.v to show the file contents. You are now ready to specify the and2gate module s functionality. 9. We compete the and2gate specification as shown below.. The line `timescale 1ns/ 1ps is located at the top of the file. The Verilog language uses dimensionless time units, and these time units are mapped to real time units within the simulator. `timescale is used to map to the real time values using the statement `timescale <time1> / <time2>, where <time1> indicates the time units associated with the #delay values, and the <time2> indicates the minimum step time used by the simulator. Note: Be sure to use the correct ` character. The ` is the not the single quotation mark ( ) and is typically located on the same key as the ~. If you have errors in your file, this may be the culprit. The and2gate module is also declared using module and2gate(); and endmodule, but the ports are left for us to define. Be sure to save the changes to the and2gate.v file by clicking on File and choosing Save. Digital System Design 7

8 10. We also want to add a testbench and again follow Steps 6 9 to add and2gate_tb.v. Then we add the functionality of the testbench module as shown below. 11. After saving both and2gate.v and and2gate_tb.v, we want to check the syntax of both files. Click on the Compile Menu and select Compile All If the syntax was correct, a checkmark will appear next to each file If the syntax was incorrect, the window at the bottom will list the individual errors. Digital System Design 8

9 12. Now it s time to simulate the design. Click on the Simulate menu and choose Start Simulation Expand the selection for the work library by click on the + symbol on the left. Select and2gate_tb and click OK button Digital System Design 9

10 13. Next we create a simulation waveform window. Click on File menu, choose New, then choose Windows, then choose Wave Add the signals that would like to monitor by dragging the signal from the middle pane to the waveform window as shown below Digital System Design 10

11 14. We can simulate the design. Enter 5 ns as the length of time we would like to simulate for in the Run Length box and click the Run icon as shown below. Digital System Design 11

12 15. Our simulation is complete. The simulation waveforms appear and we can check the and2gate module s functionality. Further, the $display statements included in the testbench appear in the lower window. Digital System Design 12

13 LAB 02 GATE LEVEL DESIGN At gate level, the circuit is described in terms of gates (e.g. and, nand). Hardware design at this level is intuitive for a user with a basic knowledge of digital logic design because it is possible to see a one-to-one correspondence between the logic circuit diagram and the Verilog description. Lab Overview In this lab you will: Learn modeling at gate level Half adder design Full adder design Multiplexer design Decoder design Background: The simplest form of adder is called a Half-Adder (HA). The HA performs bit-wise addition between two input bits. Depending on the result of the operation, the HA either sets or clears its Sum and Carry bit. A HA can be expanded to include the logic for carry in, and the modified unit is called the Full Adder (FA). Digital System Design 13

14 The verilog code for the half adder is module HA(a,b,s,c); input a,b; output s,c; xor(s,a,b); and(c,a,b); endmodule The test bench of the half adder is module testbench_ha(); reg a,b; wire s,c; HA HA_inst(a,b,s,c); initial begin a=0; b=0; #10 a=0; b=1; #10 a=1; b=0; #10 a=1; b=1; end endmodule We can use the half adder to design a full adder as shown in figure 1.3. The full adder takes an extra bit as input for carry in. Digital System Design 14

15 The verilog code of full adder is module FA(a,b,cin,s,cout); input a,b,cin; output s,cout; wire c0, s0, c1; HA HA_inst0(a,b,s0,c0); HA HA_inst1(cin,s0,s,c1); or(cout, c1,c0); endmodule Digital System Design 15

16 LAB 03 DATAFLOW LEVEL DESIGN Dataflow modeling provides a powerful way to implement a design. Verilog allows a circuit to be designed in terms of the data flow between registers and how a design processes data rather than instantiation of individual gates. Lab Overview In this lab you will: Learn modeling at dataflow level Half adder design (dataflow) Full adder design (dataflow) 4-bit adder design 12-bit Carry Select Adder (CSA) Multiplexer design (dataflow) Decoder design (dataflow) Background: The simplest form of adder is called a Half-Adder (HA). The HA performs bit-wise addition between two input bits. Depending on the result of the operation, the HA either sets or clears its Sum and Carry bit. A HA can be expanded to include the logic for carry in, and the modified unit is called the Full Adder (FA). Digital System Design 16

17 The verilog code for the half adder at dataflow level is module HA(a,b,s,c); input a,b; output s,c; assign s = a^b; assign c = a&b; // assign {s,c} = a+b; endmodule The test bench of the half adder is module testbench_ha(); reg a,b; wire s,c; HA HA_inst(a,b,s,c); initial begin a=0; b=0; #10 a=0; b=1; #10 a=1; b=0; #10 a=1; b=1; end endmodule Digital System Design 17

18 We can use the half adder to design a full adder as shown in figure 2.3. The full adder takes an extra bit as input for carry in. The verilog code of full adder at dataflow level is module FA(a,b,cin,s,cout); input a,b,cin; output s,cout; wire c0, s0, c1; HA HA_inst0(a,b,s0,c0); HA HA_inst1(cin,s0,s,c1); assign cout = c1 c0; assign {s,cout} = a + b + cin; endmodule Digital System Design 18

19 LAB 04 BEHAVIORAL LEVEL DESIGN With the increasing complexity of digital design, it has become vitally important to make wise design decisions early in a project. Designers need to be able to evaluate the trade-offs of various architectures and algorithms before they decide on the optimum architecture and algorithm to implement in hardware. Thus, architectural evaluation takes place at an algorithmic level where the designers do not necessarily think in terms of logic gates or data flow but in terms of the algorithm they wish to implement in hardware. They are more concerned about the behavior of the algorithm and its performance. Only after the high-level architecture and algorithm are finalized, do designers start focusing on building the digital circuit to implement the algorithm. Verilog provides designers the ability to describe design functionality in an algorithmic manner. In other words, the designer describes the behavior of the circuit. Thus, behavioral modeling represents the circuit at a very high level of abstraction. Lab Overview In this lab you will: Learn modeling at dataflow level Half adder design (dataflow) Full adder design (dataflow) 4-bit adder design 12-bit Carry Select Adder (CSA) Multiplexer design (dataflow) Decoder design (dataflow) Background: The simplest form of adder is called a Half-Adder (HA). The HA performs bit-wise addition between two input bits. Depending on the result of the operation, the HA either sets or clears its Sum and Carry bit. A HA can be expanded to include the logic for carry in, and the modified unit is called the Full Adder (FA). At behavioral level you don t need to know the structural model but you are only concerned with the behavioral of a circuit. Comments have been added in the code which give a feel for behavioral level coding. Digital System Design 19

20 The verilog code for the half adder at behavioral level is module HA(a,b,s,c); input a,b; output s,c; reg s,c; or b) begin s= a^b; c = a&b; //OR {s,c} = a+b; end endmodule The test bench of the half adder is module testbench_ha(); reg a,b; wire s,c; HA HA_inst(a,b,s,c); initial begin a=0; b=0; #10 a=0; b=1; #10 a=1; b=0; #10 a=1; b=1; end endmodule Digital System Design 20

21 You can use the half adder to design a full adder. The full adder takes an extra bit as input for carry in. The Verilog code of full adder at behavioral level is module FA(a,b,cin,s,cout); input a,b,cin; output s,cout; wire c0, s0, c1; HA HA_inst0(a,b,s0,c0); HA HA_inst1(cin,s0,s,c1); assign cout = c1 c0; // OR // or b or cin) //{s,cout} = a+b+cin; endmodule Digital System Design 21

22 LAB 05 TO OBSERVE THE OPERATION OF 2 TO 1 LINE MUX The Verilog code of 2 to 1 line multiplexer at dataflow level is module mux(i0,i1,selct,m,n,out); input i0,i1,selct; output m,n,out; assign m=i0&selct; assign n=i1&~selct; assign out=m n; endmodule The test bench of 2 to 1 line multiplexer is module testbench_mux; reg i0,i1,selct; wire m,n; mux ff(i0,i1,selct,m,n,out); initial begin i0=1'b0;i1=1'b1;selct=1'b1; //inputs a=0 and b=1 #10 i0=1'b0;i1=1'b1;selct=1'b0; #10 $finish; end endmodule Lab Tasks: 1. Write a verilog code for 2 to 1 line multiplexer in behavioral level 2. Write a verilog code for 4 to 1 line multiplexer in behavioral level. Digital System Design 22

23 Lab BIT RIPPLE CARRY ADDER Digital System Design 23

24 DESIGN HIERARCY OF A 16-BIT RIPPLE-CARRY ADDER module Add_rca_16 (sum, c_out, a, b, c_in); output [15: 0] sum; output c_out; input [15: 0] a, b; input c_in; wire c_in4, c_in8, c_in12; Add_rca_4 M1 (sum[3:0], c_in4, a[3:0], b[3:0], c_in); Add_rca_4 M2 (sum[7:4], c_in8, a[7:4], b[7:4], c_in4); Add_rca_4 M3 (sum[11:8], c_in12, a[11:8], b[11:8], c_in8); Add_rca_4 M4 (sum[15:12], c_out, a[15:12], b[15:12], c_in12); endmodule module Add_rca_4 (sum, c_out, a, b, c_in); output [3: 0] sum; output c_out; input [3: 0] a, b; input c_in; wire c_in2, c_in3, c_in4; Add_full M1 (sum[0], c_in2,a[0], b[0], c_in); Add_full M2 (sum[1], c_in3, a[1], b[1], c_in2); Add_full M3 (sum[2], c_in4, a[2], b[2], c_in3); Add_full M4 (sum[3], c_out, a[3], b[3], c_in4); endmodule Digital System Design 24

25 module Add_full (sum, c_out, a, b, c_in); output sum, c_out; input a, b, c_in; wire w1, w2, w3; Add_half M1 (w1, w2, a, b); Add_half M2 (sum, w3, w1, c_in); or M3 (c_out, w2, w3); endmodule module Add_half (sum, c_out, a, b); output sum, c_out; input a, b; wire c_out_bar; xor M1 (sum, a, b); and M2 (c_out, a, b); endmodule Test Bench module test_add_rca_16 (); wire [15: 0] sum; wire c_out; reg [15: 0] a, b; reg c_in; Add_rca_16 M1 (sum, c_out, a, b, c_in); initial begin #10 a = 16'h0000; b = 16'h0000; c_in = 0; #10 a = 16'h000f; b = 16'h000c; c_in = 0; #10 a = 16'h000f; b = 16'h000c; c_in = 1; #10 a = 16'h0000; b = 16'h0000; c_in = 1; #10 a = 16'h000f; b = 16'h0001; c_in = 0; #10 a = 16'h000f; b = 16'h0001; c_in = 1; end endmodule $finish; Digital System Design 25

26 Lab 07 BEHAVIORAL MODELS (LEVEL SENSITIVE & EDGE SENSITIVE) A. (Continuous Assignment Statement) Lab 5.1 (Continuous Assignment Statement) Digital System Design 26

27 Lab 5.2 (Continuous Assignment Statement with Conditional Operator) Digital System Design 27

28 Lab 5.3 (Continuous Assignment Statement with Conditional Operator) Digital System Design 28

29 B. Cyclic behavioral models of flip flops and latches Cyclic behaviors are used to model (and synthesize) both levels- sensitive and edge sensitive (synchronous) behavior (e.g flip flop) Lab 5.4 Digital System Design 29

30 1. Blocking (the = operator) Blocking and Non-Blocking Assignment With blocking assignments each statement in the same time frame is executed in sequential order within their blocks. If there is a time delay in one line then the next statement will not be executed until this delay is over. initial begin end a = 4; b = 3; example 1 #10 c = 18; #5 d = 7; Above, at time=0 both a and b will have 4 and 3 assigned to them respectively and at time=10, c will equal 18 and at time=15, d will equal Non-Blocking (the <= operator) Non-Blocking assignments tackle the procedure of assigning values to variables in a totally different way. Instead of executing each statement as they are found, the right-hand side variables of all non-blocking statements are read and stored in temporary memory locations. When they have all been read, the left-hand side variables will be determined. They are non-blocking because they allow the execution of other events to occur in the block even if there are time delays set. integera,b,c; initial begin a = 67; #10; a <= 4; example 2 c <= #15 a; d <= #10 9; b <= 3; end This example sets a=67 then waits for a count of 10. Then the right-hand variables are read and stored in tempory memory locations. Here this is a=67. Then the left-hand variables are set. At time=10 a and b will be set to 4 and 3. Then at time=20 d=9. Finally at time=25, c=a which was 67, therefore c=67. Note that d is set before c. This is because the four statements for setting a-d are performed at the same time. Variable d is not waiting for variable c to complete its task. This is similar to a Parallel Block. This example has used both blocking and non-blocking statements. The blocking statement could be non-blocking, but this method saves on simulator memory and will not have as large a performance drain. Digital System Design 30

31 Application of Non-Blocking Assignments We have already seen that non-blocking assignments can be used to enable variables to be set anywhere in time without worrying what the previous statements are going to do. Another important use of the non-blocking assignment is to prevent race conditions. If the programmer wishes two variables to swap their values and blocking operators are used, the output is not what is expected: initial begin end x = 5; y = 3; clock) begin x = y; y = x; end example 3 This will give both x and y the same value. If the circuit was to be built a race condition has been entered which is unstable. The compliler will give a stable output, however this is not the output expected. The simulator assigns x the value of 3 and then y is then assigned x. As x is now 3, y will not change its value. If the non-blocking operator is used instead: begin x <= y; example 4 y <= x; end both the values of x and y are stored first. Then x is assigned the old value of y (3) and y is then assigned the old value of x (5). Digital System Design 31

32 Lab 08 SEQUENTIAL CIRCUITS Computers and other digital systems that have memory or that execute a sequence of operations under the direction of stored information are referred to as sequential machines and their circuitry is modeled by sequential logic. Sequential machines do not behave like combinational logic because the outputs of a sequential machine depend on the history of the applied inputs as well as on their present value. The history of the inputs applied to a sequential machine is represented by the state of the machine and requires hardware elements that store information; that is, it requires memory to store the state of the machine as an encoded binary word. Lab Overview In this lab you will: Flip flop designs D_FF JK_FF T_FF Sequential machine design using flip flop Background: There are two main types of sequential circuits and their classification depends on the timing of their signals. 1. A synchronous sequential circuit is a system whose behavior can be defind from the knowledge of its signals at discrete instant of time 2. The behavior of an asynchronous sequential circuit depends upon the input signals at any time and the order in which the inputs change. The storage elements used in clocked sequential circuit are called flip flops. A flip flop is a binary storage device capable of storing one bit of information. The state of a flip flop can change only during a clock pulse transition. Latches are used to model asynchronous circuits. A latch also holds one bit value but the state of the latch can change with changes in inputs and does not require synchronization with clock pulse. In this lab we will learn to model different flip flops using Verilog. D_FF, JK_FF and T_FF are the common flip flops used in synchronous sequential circuits. Function table are used to describe different flip flops. D_FF is the simplest of the flip-flops because its next state is equal to its present state Table 1 D Flip-Flop D Q(t+1) JK_FF has its next state equal to its present state when inputs J and K are both equal to 0. When K=1 and J=0, the clock resets the flip-flop and Q(t+1) = 0. With J=1 and K=0, the flip-flops sets and Q(t+1) =1. When both J and k are equal to 1, the next state changes to the complement of the present state. Digital System Design 32

33 Table 2 JK Flip-Flop J K Q(t+1) 0 0 Q(t) Q (t+1) T_FF toggles when the T=1 otherwise the state of T_ff does not change. Table 3 T Flip-Flop T Q(t+1) 0 Q(t) 1 Q (t+1) Lab Tasks: 1. Write verilog code for D flip flop and write a test bench to verify the design. 2. Write verilog code for JK flip flop and write a test bench to verify the design. 3. Write verilog code for T flip flop and write a test bench to verify the design. 4. Write verilog code for the figure Write a test bench to verify the design as shown in the table 4. Figure 1 Table 4 BCD to Exess-3 code Decimal Digit code Excess-3 code (BCD) Digital System Design 33

34 Documentation Submit the codes along with the wave diagrams for the D, JK, T flip flops and BCD to excess-3 code converter. Digital System Design 34

35 Lab 09 SEQUENTIAL CIRCUITS - II Unlike combinational logic, whose output is an immediate function of only its present inputs, sequential logic depends on the history of its inputs. This dependency is expressed by the concept of state The future behavior of a sequential machine is completely characterized by its input and its present state. Lab Overview In this lab you will learn: State machines State diagrams State machine design in Verilog Background: Finite State Machines are used to model Sequential circuits since the states of the sequential circuits change depending upon the inputs at the clock edge. A state diagram is used to describe the sequential behavior of the circuit showing the transition of states according to the inputs. Here a traffic light controller example is presented to show the Verilog coding of Finite state machine. Example: Traffic light controller The following specifications must be considered: 1. The traffic signal for the main highway gets highest priority because cars are continuously present on the main highway. Thus, the main highway signal remains green by default. 2. Occasionally, cars from the country road arrive at the traffic signal. The traffic signal for the country road must turn green only long enough to let the cars on the country road go. 3. As soon as there are no cars on the country road, the country road traffic signal turns yellow and then red and the traffic signal on the main highway turn green again. 4. There is a sensor to detect cars waiting on the country road. The sensor sends a signal X as input to the controller. X = 1 if there are cars on the country road; otherwise, X= 0. The state machine diagram and the state definitions for the traffic signal controller are shown in the following figure Digital System Design 35

36 Figure 5.2 State diagram Table 5.1 State and output signals The traffic signal controller module can be designed with behavioral Verilog constructs module sig_control (hwy, cntry, X, clock, clear); //I/O ports output [1:0] hwy, cntry; //2-bit output for 3 states of signal //GREEN, YELLOW, RED; reg [1:0] hwy, cntry; //declared output signals are registers input X; input clock, clear; //if TRUE, indicates that there is car on //the country road, otherwise FALSE parameter RED = 2'd0, YELLOW = 2'd1, GREEN = 2'd2; //State definition HWY CNTRY parameter S0 = 3'd0, //GREEN RED S1 = 3'd1, //YELLOW RED Digital System Design 36

37 S2 = 3'd2, S3 = 3'd3, S4 = 3'd4; //RED RED //RED GREEN //RED YELLOW //Internal state variables reg [2:0] state; reg [2:0] next_state; //state changes only at positive edge of clock clock) if (clear) state <= S0; //Controller starts in S0 state else state <= next_state; //State change //Compute values of main signal and country signal begin hwy = GREEN; //Default Light Assignment for Highway light cntry = RED; //Default Light Assignment for Country light case(state) S0: ; // No change, use default S1: hwy = YELLOW; S2: hwy = RED; S3: begin hwy = RED; cntry = GREEN; end S4: begin hwy = RED; cntry = YELLOW; end endcase end //State machine using case statements or X) begin case (state) S0: if(x) next_state = S1; else next_state = S0; S1: begin next_state = S2; end S2: begin next_state = S3; end S3: if(x) next_state = S3; else next_state = S4; S4: begin next_state = S0; end default: next_state = S0; endcase endmodule Digital System Design 37

38 Lab Tasks: 1. Write verilog code. 2. Write a test bench to verify the design Documentation Submit the code along with the wave diagrams for the sequence detector Digital System Design 38

39 Lab 10 SEVEN SEGMENT DISPLAY Digital System Design 39

40 Digital System Design 40

41 Lab 11 CLOCK GENERATOR Digital System Design 41

42 Digital System Design 42

43 Lab 12 ASYNCHRONOUS COUNTER Asynchronous Decade Counter This type of asynchronous counter counts upwards on each leading edge of the input clock signal starting from "0000" until it reaches an output "1010" (decimal 10). Both outputs QA and QD are now equal to logic "1" and the output from the NAND gate changes state from logic "1" to a logic "0" level and whose output is also connected to the CLEAR ( CLR ) inputs of all the J-K Flip-flops. This signal causes all of the Q outputs to be reset back to binary "0000" on the count of 10. Once QAand QD are both equal to logic "0" the output of the NAND gate returns back to a logic level "1" and the counter restarts again from "0000". We now have a decade or Modulo-10 counter. Decade Counter Truth Table Clock Count Output bit Pattern QD QC QB QA Decimal Value Counter Resets its Outputs back to Zero Decade Counter Timing Diagram Digital System Design 43

44 Using the same idea of truncating counter output sequences, the above circuit could easily be adapted to other counting cycles be simply changing the connections to the NAND gate. For example, a scale-of-twelve (modulo-12) can easily be made by simply taking the inputs to the NAND gate from the outputs at "QC" and "QD", noting that the binary equivalent of 12 is "1100" and that output "QA" is the least significant bit (LSB). Digital System Design 44

45 Lab 13 SYNCHRONOUS COUNTER Binary 4-bit Synchronous Counter It can be seen that the external clock pulses (pulses to be counted) are fed directly to each J-K flip-flop in the counter chain and that both the J and K inputs are all tied together in toggle mode, but only in the first flip-flop, flip-flop A (LSB) are they connected HIGH, logic "1" allowing the flip-flop to toggle on every clock pulse. Then the synchronous counter follows a predetermined sequence of states in response to the common clock signal, advancing one state for each pulse. The J and K inputs of flip-flop B are connected to the output "Q" of flip-flop A, but the J and K inputs of flipflops C and D are driven from AND gates which are also supplied with signals from the input and output of the previous stage. If we enable each J-K flip-flop to toggle based on whether or not all preceding flip-flop outputs (Q) are "HIGH" we can obtain the same counting sequence as with the asynchronous circuit but without the ripple effect, since each flip-flop in this circuit will be clocked at exactly the same time. As there is no propagation delay in synchronous counters because all the counter stages are triggered in parallel the maximum operating frequency of this type of counter is much higher than that of a similar asynchronous counter. 4-bit Synchronous Counter Waveform Timing Diagram. Digital System Design 45

46 Because this 4-bit synchronous counter counts sequentially on every clock pulse the resulting outputs count upwards from 0 ( "0000" ) to 15 ( "1111" ). Therefore, this type of counter is also known as a 4-bit Synchronous Up Counter. As synchronous counters are formed by connecting flip-flops together and any number of flip-flops can be connected or "cascaded" together to form a "divide-by-n" binary counter, the modulo's or "MOD" number still applies as it does for asynchronous counters so a Decade counter or BCD counter with counts from 0 to 2 n - 1 can be built along with truncated sequences. Decade 4-bit Synchronous Counter A 4-bit decade synchronous counter can also be built using synchronous binary counters to produce a count sequence from 0 to 9. A standard binary counter can be converted to a decade (decimal 10) counter with the aid of some additional logic to implement the desired state sequence. After reaching the count of "1001", the counter recycles back to "0000". We now have a decade or Modulo-10 counter. Decade 4-bit Synchronous Counter The additional AND gates detect when the sequence reaches "1001", (Binary 10) and causes flip-flopff3 to toggle on the next clock pulse. Flip-flop FF0 toggles on every clock pulse. Thus, the count starts over at Digital System Design 46

47 "0000" producing a synchronous decade counter. We could quite easily re-arrange the additionaland gates to produce other counters such as a Mod-12 Up counter which counts 12 states from"0000" to "1011" (0 to 11) and then repeats making them suitable for clocks. Synchronous Counters use edge-triggered flip-flops that change states on either the "positive-edge" (rising edge) or the "negative-edge" (falling edge) of the clock pulse on the control input resulting in one single count when the clock input changes state. Generally, synchronous counters count on the rising-edge which is the low to high transition of the clock signal and asynchronous ripple counters count on the falling-edge which is the high to low transition of the clock signal. It may seem unusual that ripple counters use the falling-edge of the clock cycle to change state, but this makes it easier to link counters together because the most significant bit (MSB) of one counter can drive the clock input of the next. This works because the next bit must change state when the previous bit changes from high to low - the point at which a carry must occur to the next bit. Synchronous counters usually have a carry-out and a carry-in pin for linking counters together without introducing any propagation delays. Digital System Design 47

Federal Urdu University of Arts, Science and Technology, Islamabad VLSI SYSTEM DESIGN. Prepared By: Engr. Yousaf Hameed.

Federal Urdu University of Arts, Science and Technology, Islamabad VLSI SYSTEM DESIGN. Prepared By: Engr. Yousaf Hameed. VLSI SYSTEM DESIGN Prepared By: Engr. Yousaf Hameed Lab Engineer BASIC ELECTRICAL & DIGITAL SYSTEMS LAB DEPARTMENT OF ELECTRICAL ENGINEERING VLSI System Design 1 LAB 01 Schematic Introduction to DSCH and

More information

DIGITAL SYSTEM DESIGN

DIGITAL SYSTEM DESIGN DIGITAL SYSTEM DESIGN Prepared By: Engr. Yousaf Hameed Lab Engineer BASIC ELECTRICAL & DIGITAL SYSTEMS LAB DEPARTMENT OF ELECTRICAL ENGINEERING Digital System Design 1 Name: Registration No: Roll No: Semester:

More information

Digital Design with FPGAs. By Neeraj Kulkarni

Digital Design with FPGAs. By Neeraj Kulkarni Digital Design with FPGAs By Neeraj Kulkarni Some Basic Electronics Basic Elements: Gates: And, Or, Nor, Nand, Xor.. Memory elements: Flip Flops, Registers.. Techniques to design a circuit using basic

More information

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University Digital Circuit Design and Language Datapath Design Chang, Ik Joon Kyunghee University Typical Synchronous Design + Control Section : Finite State Machine + Data Section: Adder, Multiplier, Shift Register

More information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

More information

N-input EX-NOR gate. N-output inverter. N-input NOR gate

N-input EX-NOR gate. N-output inverter. N-input NOR gate Hardware Description Language HDL Introduction HDL is a hardware description language used to design and document electronic systems. HDL allows designers to design at various levels of abstraction. It

More information

Xilinx ISE Simulation Tutorial

Xilinx ISE Simulation Tutorial Xilinx ISE Simulation Tutorial 1. Start Xilinx ISE Project Navigator 2. Create a new project Click on File, then choose New Project on the drop down menu Enter your project name, in this case the project

More information

Department of Computer Science & Engineering. Lab Manual DIGITAL LAB. Class: 2nd yr, 3rd sem SYLLABUS

Department of Computer Science & Engineering. Lab Manual DIGITAL LAB. Class: 2nd yr, 3rd sem SYLLABUS Department of Computer Science & Engineering Lab Manual 435 DIGITAL LAB Class: 2nd yr, 3rd sem SYLLABUS. Verification of Boolean theorems using digital logic gates. 2. Design and implementation of code

More information

Synthesizable Verilog

Synthesizable Verilog Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL

More information

Ripple Counters. Lecture 30 1

Ripple Counters. Lecture 30 1 Ripple Counters A register that goes through a prescribed sequence of states upon the application of input pulses is called a counter. The input pulses may be clock pulses, or they may originate from some

More information

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits Name: Instructor: Engr. Date Performed: Marks Obtained: /10 Group Members (ID):. Checked By: Date: Experiment # 11 Introduction to Verilog II Sequential Circuits OBJECTIVES: To understand the concepts

More information

Code No: R Set No. 1

Code No: R Set No. 1 Code No: R059210504 Set No. 1 II B.Tech I Semester Regular Examinations, November 2006 DIGITAL LOGIC DESIGN ( Common to Computer Science & Engineering, Information Technology and Computer Science & Systems

More information

Verilog HDL. Gate-Level Modeling

Verilog HDL. Gate-Level Modeling Verilog HDL Verilog is a concurrent programming language unlike C, which is sequential in nature. block - executes once at time 0. If there is more then one block, each execute concurrently always block

More information

R a) Simplify the logic functions from binary to seven segment display code converter (8M) b) Simplify the following using Tabular method

R a) Simplify the logic functions from binary to seven segment display code converter (8M) b) Simplify the following using Tabular method SET - 1 1. a) Convert the decimal number 250.5 to base 3, base 4 b) Write and prove de-morgan laws c) Implement two input EX-OR gate from 2 to 1 multiplexer (3M) d) Write the demerits of PROM (3M) e) What

More information

Chapter 5 Registers & Counters

Chapter 5 Registers & Counters University of Wisconsin - Madison ECE/Comp Sci 352 Digital Systems Fundamentals Kewal K. Saluja and Yu Hen Hu Spring 2002 Chapter 5 Registers & Counters Originals by: Charles R. Kime Modified for course

More information

Modeling Sequential Circuits in Verilog

Modeling Sequential Circuits in Verilog Modeling Sequential Circuits in Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals Presentation Outline Modeling Latches and Flip-Flops Blocking versus

More information

Sequential Logic Design

Sequential Logic Design Sequential Logic Design Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu (Guest starring: Frank K. Gürkaynak and Aanjhan Ranganathan) http://www.syssec.ethz.ch/education/digitaltechnik_17 Adapted

More information

ENEE245 Digital Circuits and Systems Lab Manual

ENEE245 Digital Circuits and Systems Lab Manual ENEE245 Digital Circuits and Systems Lab Manual Department of Engineering, Physical & Computer Sciences Montgomery College Modified Fall 2017 Copyright Prof. Lan Xiang (Do not distribute without permission)

More information

EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013

EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013 EPC6055 Digital Integrated Circuits EXAM 1 Fall Semester 2013 Print Here Student ID Signature This is a closed book exam. The exam is to be completed in one-hundred ten (110) minutes. Don t use scratch

More information

a, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign

a, b sum module add32 sum vector bus sum[31:0] sum[0] sum[31]. sum[7:0] sum sum overflow module add32_carry assign I hope you have completed Part 1 of the Experiment. This lecture leads you to Part 2 of the experiment and hopefully helps you with your progress to Part 2. It covers a number of topics: 1. How do we specify

More information

Course Topics - Outline

Course Topics - Outline Course Topics - Outline Lecture 1 - Introduction Lecture 2 - Lexical conventions Lecture 3 - Data types Lecture 4 - Operators Lecture 5 - Behavioral modeling A Lecture 6 Behavioral modeling B Lecture 7

More information

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3 Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm Lecture 3 Lecture 3 Topics Covered: Chapter 4 Discuss Sequential logic Verilog Coding Introduce Sequential coding Further review of Combinational Verilog

More information

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified.

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. 1 In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. I will also introduce the idea of a testbench as part of a design specification.

More information

Lecture 32: SystemVerilog

Lecture 32: SystemVerilog Lecture 32: SystemVerilog Outline SystemVerilog module adder(input logic [31:0] a, input logic [31:0] b, output logic [31:0] y); assign y = a + b; Note that the inputs and outputs are 32-bit busses. 17:

More information

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING QUESTION BANK NAME OF THE SUBJECT: EE 2255 DIGITAL LOGIC CIRCUITS

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING QUESTION BANK NAME OF THE SUBJECT: EE 2255 DIGITAL LOGIC CIRCUITS KINGS COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING QUESTION BANK NAME OF THE SUBJECT: EE 2255 DIGITAL LOGIC CIRCUITS YEAR / SEM: II / IV UNIT I BOOLEAN ALGEBRA AND COMBINATIONAL

More information

Introduction to Verilog HDL. Verilog 1

Introduction to Verilog HDL. Verilog 1 Introduction to HDL Hardware Description Language (HDL) High-Level Programming Language Special constructs to model microelectronic circuits Describe the operation of a circuit at various levels of abstraction

More information

Written exam for IE1204/5 Digital Design Thursday 29/

Written exam for IE1204/5 Digital Design Thursday 29/ Written exam for IE1204/5 Digital Design Thursday 29/10 2015 9.00-13.00 General Information Examiner: Ingo Sander. Teacher: William Sandqvist phone 08-7904487 Exam text does not have to be returned when

More information

Chap 6 Introduction to HDL (d)

Chap 6 Introduction to HDL (d) Design with Verilog Chap 6 Introduction to HDL (d) Credit to: MD Rizal Othman Faculty of Electrical & Electronics Engineering Universiti Malaysia Pahang Ext: 6036 VERILOG HDL Basic Unit A module Module

More information

EE 8351 Digital Logic Circuits Ms.J.Jayaudhaya, ASP/EEE

EE 8351 Digital Logic Circuits Ms.J.Jayaudhaya, ASP/EEE EE 8351 Digital Logic Circuits Ms.J.Jayaudhaya, ASP/EEE 1 Logic circuits for digital systems may be combinational or sequential. A combinational circuit consists of input variables, logic gates, and output

More information

ENEE245 Digital Circuits and Systems Lab Manual

ENEE245 Digital Circuits and Systems Lab Manual ENEE245 Digital Circuits and Systems Lab Manual Department of Engineering, Physical & Computer Sciences Montgomery College Version 1.1 Copyright Prof. Lan Xiang (Do not distribute without permission) 1

More information

Lab 7 (All Sections) Prelab: Introduction to Verilog

Lab 7 (All Sections) Prelab: Introduction to Verilog Lab 7 (All Sections) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The

More information

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Introduction to Verilog

More information

Writing Circuit Descriptions 8

Writing Circuit Descriptions 8 8 Writing Circuit Descriptions 8 You can write many logically equivalent descriptions in Verilog to describe a circuit design. However, some descriptions are more efficient than others in terms of the

More information

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016 ECE 353 Lab 4 Verilog Review Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016 Recall What You Will Do Design and implement a serial MIDI receiver Hardware in

More information

L5: Simple Sequential Circuits and Verilog

L5: Simple Sequential Circuits and Verilog L5: Simple Sequential Circuits and Verilog Acknowledgements: Nathan Ickes and Rex Min Lecture notes prepared by Professor Anantha Chandrakasan L5: 6.111 Spring 29 Introductory Digital Systems Laboratory

More information

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1]

FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language. Reference: [1] FPGA: FIELD PROGRAMMABLE GATE ARRAY Verilog: a hardware description language Reference: [] FIELD PROGRAMMABLE GATE ARRAY FPGA is a hardware logic device that is programmable Logic functions may be programmed

More information

Synthesis of Combinational and Sequential Circuits with Verilog

Synthesis of Combinational and Sequential Circuits with Verilog Synthesis of Combinational and Sequential Circuits with Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two

More information

L5: Simple Sequential Circuits and Verilog

L5: Simple Sequential Circuits and Verilog L5: Simple Sequential Circuits and Verilog Courtesy of Rex Min. Used with permission. 1 Key Points from L4 (Sequential Blocks) Classification: Latch: level sensitive (positive latch passes input to output

More information

Introduction to Verilog design. Design flow (from the book)

Introduction to Verilog design. Design flow (from the book) Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 1 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

More information

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language COMS W4995-02 Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language Originally a modeling language for a very efficient event-driven

More information

Code No: R Set No. 1

Code No: R Set No. 1 Code No: R059210504 Set No. 1 II B.Tech I Semester Regular Examinations, November 2007 DIGITAL LOGIC DESIGN ( Common to Computer Science & Engineering, Information Technology and Computer Science & Systems

More information

L5: Simple Sequential Circuits and Verilog

L5: Simple Sequential Circuits and Verilog L5: Simple Sequential Circuits and Verilog Acknowledgements: Nathan Ickes and Rex Min Key Points from L4 (Sequential Blocks) Classification: Latch: level sensitive (positive latch passes input to output

More information

Digital Design with SystemVerilog

Digital Design with SystemVerilog Digital Design with SystemVerilog Prof. Stephen A. Edwards Columbia University Spring 25 Synchronous Digital Design Combinational Logic Sequential Logic Summary of Modeling Styles Testbenches Why HDLs?

More information

R10. II B. Tech I Semester, Supplementary Examinations, May

R10. II B. Tech I Semester, Supplementary Examinations, May SET - 1 1. a) Convert the following decimal numbers into an equivalent binary numbers. i) 53.625 ii) 4097.188 iii) 167 iv) 0.4475 b) Add the following numbers using 2 s complement method. i) -48 and +31

More information

Mark Redekopp, All rights reserved. EE 352 Unit 8. HW Constructs

Mark Redekopp, All rights reserved. EE 352 Unit 8. HW Constructs EE 352 Unit 8 HW Constructs Logic Circuits Combinational logic Perform a specific function (mapping of 2 n input combinations to desired output combinations) No internal state or feedback Given a set of

More information

Tutorial on Verilog HDL

Tutorial on Verilog HDL Tutorial on Verilog HDL HDL Hardware Description Languages Widely used in logic design Verilog and VHDL Describe hardware using code Document logic functions Simulate logic before building Synthesize code

More information

ELCT 501: Digital System Design

ELCT 501: Digital System Design ELCT 501: Digital System Lecture 4: CAD tools (Continued) Dr. Mohamed Abd El Ghany, Basic VHDL Concept Via an Example Problem: write VHDL code for 1-bit adder 4-bit adder 2 1-bit adder Inputs: A (1 bit)

More information

HANSABA COLLEGE OF ENGINEERING & TECHNOLOGY (098) SUBJECT: DIGITAL ELECTRONICS ( ) Assignment

HANSABA COLLEGE OF ENGINEERING & TECHNOLOGY (098) SUBJECT: DIGITAL ELECTRONICS ( ) Assignment Assignment 1. What is multiplexer? With logic circuit and function table explain the working of 4 to 1 line multiplexer. 2. Implement following Boolean function using 8: 1 multiplexer. F(A,B,C,D) = (2,3,5,7,8,9,12,13,14,15)

More information

VHDL Examples Mohamed Zaky

VHDL Examples Mohamed Zaky VHDL Examples By Mohamed Zaky (mz_rasmy@yahoo.co.uk) 1 Half Adder The Half Adder simply adds 2 input bits, to produce a sum & carry output. Here we want to add A + B to produce Sum (S) and carry (C). A

More information

R07. Code No: V0423. II B. Tech II Semester, Supplementary Examinations, April

R07. Code No: V0423. II B. Tech II Semester, Supplementary Examinations, April SET - 1 II B. Tech II Semester, Supplementary Examinations, April - 2012 SWITCHING THEORY AND LOGIC DESIGN (Electronics and Communications Engineering) Time: 3 hours Max Marks: 80 Answer any FIVE Questions

More information

Introduction to Verilog

Introduction to Verilog Introduction to Verilog Structure of a Verilog Program A Verilog program is structured as a set of modules, which may represent anything from a collection of logic gates to a complete system. A module

More information

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur-603 203 DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS YEAR / SEMESTER: II / III ACADEMIC YEAR: 2015-2016 (ODD

More information

Registers and finite state machines

Registers and finite state machines Registers and finite state machines DAPA E.T.S.I. Informática Universidad de Sevilla /22 Jorge Juan 2, 2, 22 You are free to copy, distribute and communicate this work publicly and

More information

Design Using Verilog

Design Using Verilog EGC220 Design Using Verilog Baback Izadi Division of Engineering Programs bai@engr.newpaltz.edu Basic Verilog Lexical Convention Lexical convention are close to C++. Comment // to the of the line. /* to

More information

ENEE 245 Lab 1 Report Rubrics

ENEE 245 Lab 1 Report Rubrics ENEE 4 Lab 1 Report Rubrics Design Clearly state the design requirements Derive the minimum SOP Show the circuit implementation. Draw logic diagram and wiring diagram neatly Label all the diagrams/tables

More information

Verilog introduction. Embedded and Ambient Systems Lab

Verilog introduction. Embedded and Ambient Systems Lab Verilog introduction Embedded and Ambient Systems Lab Purpose of HDL languages Modeling hardware behavior Large part of these languages can only be used for simulation, not for hardware generation (synthesis)

More information

EN2911X: Reconfigurable Computing Lecture 05: Verilog (2)

EN2911X: Reconfigurable Computing Lecture 05: Verilog (2) EN2911X: Lecture 05: Verilog (2) Prof. Sherief Reda Division of Engineering, Brown University Fall 09 http://scale.engin.brown.edu Dataflow modeling Module is designed by specifying the data flow, where

More information

Lecture 2: Data Types, Modeling Combinational Logic in Verilog HDL. Variables and Logic Value Set. Data Types. Why use an HDL?

Lecture 2: Data Types, Modeling Combinational Logic in Verilog HDL. Variables and Logic Value Set. Data Types. Why use an HDL? Why use an HDL? Lecture 2: Data Types, Modeling Combinational Logic in Verilog HDL Increase digital design engineer s productivity (from Dataquest) Behavioral HDL RTL HDL Gates Transistors 2K 10K gates/week

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

Quick Introduction to SystemVerilog: Sequental Logic

Quick Introduction to SystemVerilog: Sequental Logic ! Quick Introduction to SystemVerilog: Sequental Logic Lecture L3 8-545 Advanced Digital Design ECE Department Many elements Don Thomas, 24, used with permission with credit to G. Larson Today Quick synopsis

More information

Computer Architecture (TT 2012)

Computer Architecture (TT 2012) Computer Architecture (TT 2012) The Register Transfer Level Daniel Kroening Oxford University, Computer Science Department Version 1.0, 2011 Outline Reminders Gates Implementations of Gates Latches, Flip-flops

More information

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date:

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date: Design of Datapath Controllers and Sequential Logic Lecturer: Date: 2009.03.18 ACCESS IC LAB Sequential Circuit Model & Timing Parameters ACCESS IC LAB Combinational Logic Review Combinational logic circuits

More information

L5: Simple Sequential Circuits and Verilog

L5: Simple Sequential Circuits and Verilog L5: Simple Sequential Circuits and Verilog Acknowledgements: Nathan Ickes and Rex Min L5: 6. Spring 27 Introductory igital Systems Laboratory Key Points from L4 (Sequential Blocks) Classification: Latch:

More information

ACS College of Engineering. Department of Biomedical Engineering. Logic Design Lab pre lab questions ( ) Cycle-1

ACS College of Engineering. Department of Biomedical Engineering. Logic Design Lab pre lab questions ( ) Cycle-1 ACS College of Engineering Department of Biomedical Engineering Logic Design Lab pre lab questions (2015-2016) Cycle-1 1. What is a combinational circuit? 2. What are the various methods of simplifying

More information

Using ModelSim to Simulate Logic Circuits for Altera FPGA Devices

Using ModelSim to Simulate Logic Circuits for Altera FPGA Devices Using ModelSim to Simulate Logic Circuits for Altera FPGA Devices This tutorial is a basic introduction to ModelSim, a Mentor Graphics simulation tool for logic circuits. We show how to perform functional

More information

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines Lecture 3 Behavioral Modeling Sequential Circuits Registers Counters Finite State Machines Behavioral Modeling Behavioral Modeling Behavioral descriptions use the keyword always, followed by optional event

More information

EE 330 Spring Laboratory 2: Basic Boolean Circuits

EE 330 Spring Laboratory 2: Basic Boolean Circuits EE 330 Spring 2013 Laboratory 2: Basic Boolean Circuits Objective: The objective of this experiment is to investigate methods for evaluating the performance of Boolean circuits. Emphasis will be placed

More information

Hardware Description Language VHDL (1) Introduction

Hardware Description Language VHDL (1) Introduction Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for

More information

(ii) Simplify and implement the following SOP function using NOR gates:

(ii) Simplify and implement the following SOP function using NOR gates: DHANALAKSHMI COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EE6301 DIGITAL LOGIC CIRCUITS UNIT I NUMBER SYSTEMS AND DIGITAL LOGIC FAMILIES PART A 1. How can an OR gate be

More information

Injntu.com Injntu.com Injntu.com R16

Injntu.com Injntu.com Injntu.com R16 1. a) What are the three methods of obtaining the 2 s complement of a given binary (3M) number? b) What do you mean by K-map? Name it advantages and disadvantages. (3M) c) Distinguish between a half-adder

More information

CS429: Computer Organization and Architecture

CS429: Computer Organization and Architecture CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: January 2, 2018 at 11:23 CS429 Slideset 5: 1 Topics of this Slideset

More information

Verilog Behavioral Modeling

Verilog Behavioral Modeling Verilog Behavioral Modeling Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Spring, 2017 ldvan@cs.nctu.edu.tw http://www.cs.nctu.edu.tw/~ldvan/ Source:

More information

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2017 1 Topics 1. Programmable logic

More information

Lecture 15: System Modeling and Verilog

Lecture 15: System Modeling and Verilog Lecture 15: System Modeling and Verilog Slides courtesy of Deming Chen Intro. VLSI System Design Outline Outline Modeling Digital Systems Introduction to Verilog HDL Use of Verilog HDL in Synthesis Reading

More information

Digital Design (VIMIAA01) Introduction to the Verilog HDL

Digital Design (VIMIAA01) Introduction to the Verilog HDL BUDAPEST UNIVERSITY OF TECHNOLOGY AND ECONOMICS FACULTY OF ELECTRICAL ENGINEERING AND INFORMATICS DEPARTMENT OF MEASUREMENT AND INFORMATION SYSTEMS Digital Design (VIMIAA01) Introduction to the Verilog

More information

Lab #1. Topics. 3. Introduction to Verilog 2/8/ Programmable logic. 2. Design Flow. 3. Verilog --- A Hardware Description Language

Lab #1. Topics. 3. Introduction to Verilog 2/8/ Programmable logic. 2. Design Flow. 3. Verilog --- A Hardware Description Language Lab #1 Lecture 8, 9, &10: FPGA Dataflow and Verilog Modeling February 9, 11, 13, 2015 Prof R Iris Bahar Lab #1 is posted on the webpage wwwbrownedu/departments/engineering/courses/engn1640 Note for problem

More information

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two major languages Verilog (IEEE 1364), latest version is

More information

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 98-1 Under-Graduate Project Synthesis of Combinational Logic Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 What is synthesis? Outline Behavior Description for Synthesis Write Efficient HDL

More information

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb UMass Amherst Fall 2017

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb UMass Amherst Fall 2017 ECE 353 Lab 4 Verilog Review Professor Daniel Holcomb UMass Amherst Fall 2017 What You Will Do In Lab 4 Design and implement a serial MIDI receiver Hardware in an Altera Complex Programmable Logic Device

More information

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2 Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

More information

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now? Outline EECS 5 - Components and Design Techniques for Digital Systems Lec Putting it all together -5-4 David Culler Electrical Engineering and Computer Sciences University of California Berkeley Top-to-bottom

More information

CSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8

CSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8 CSCB58 - Lab 3 Latches, Flip-flops, and Registers Learning Objectives The purpose of this exercise is to investigate the fundamental synchronous logic elements: latches, flip-flops, and registers. Prelab

More information

Microcomputers. Outline. Number Systems and Digital Logic Review

Microcomputers. Outline. Number Systems and Digital Logic Review Microcomputers Number Systems and Digital Logic Review Lecture 1-1 Outline Number systems and formats Common number systems Base Conversion Integer representation Signed integer representation Binary coded

More information

Chap 3. Modeling structure & basic concept of Verilog HDL

Chap 3. Modeling structure & basic concept of Verilog HDL Chap 3. Modeling structure & basic concept of Verilog HDL Fall semester, 2016 Prof. Jaeseok Kim School of Electrical & Electronics Eng. Yonsei university jaekim@yonsei.ac.kr Digital System Design 3-1 Chapter

More information

Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28

Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28 99-1 Under-Graduate Project Verilog Simulation & Debugging Tools Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28 ACCESS IC LAB Outline Basic Concept of Verilog HDL Gate Level Modeling

More information

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.

More information

EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2

EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2 EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2 Professor Sherief Reda http://scaleenginbrownedu Electrical Sciences and Computer Engineering School of Engineering Brown University

More information

ARM 64-bit Register File

ARM 64-bit Register File ARM 64-bit Register File Introduction: In this class we will develop and simulate a simple, pipelined ARM microprocessor. Labs #1 & #2 build some basic components of the processor, then labs #3 and #4

More information

(Refer Slide Time: 00:01:53)

(Refer Slide Time: 00:01:53) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 36 Design of Circuits using MSI Sequential Blocks (Refer Slide Time:

More information

Principles of Digital Techniques PDT (17320) Assignment No State advantages of digital system over analog system.

Principles of Digital Techniques PDT (17320) Assignment No State advantages of digital system over analog system. Assignment No. 1 1. State advantages of digital system over analog system. 2. Convert following numbers a. (138.56) 10 = (?) 2 = (?) 8 = (?) 16 b. (1110011.011) 2 = (?) 10 = (?) 8 = (?) 16 c. (3004.06)

More information

END-TERM EXAMINATION

END-TERM EXAMINATION (Please Write your Exam Roll No. immediately) END-TERM EXAMINATION DECEMBER 2006 Exam. Roll No... Exam Series code: 100919DEC06200963 Paper Code: MCA-103 Subject: Digital Electronics Time: 3 Hours Maximum

More information

ECE 353 Lab 3 (Verilog Design Approach)

ECE 353 Lab 3 (Verilog Design Approach) ECE 353 Lab 3 (Verilog Design Approach) Prof Daniel Holcomb Recall What You Will Do Design and implement a serial MIDI receiver Hardware in an Altera Complex Programmable Logic Device (CPLD) MAX 7000S

More information

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2016 1 Topics 1. Programmable logic

More information

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are:

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are: Problem 1: CLD2 Problems. (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are: C 0 = A + BD + C + BD C 1 = A + CD + CD + B C 2 = A + B + C + D C 3 = BD + CD + BCD + BC C 4

More information

Advanced Digital Design with the Verilog HDL

Advanced Digital Design with the Verilog HDL Copyright 2001, 2003 MD Ciletti 1 Advanced Digital Design with the Verilog HDL M. D. Ciletti Department of Electrical and Computer Engineering University of Colorado Colorado Springs, Colorado ciletti@vlsic.uccs.edu

More information

Tutorial 2 Implementing Circuits in Altera Devices

Tutorial 2 Implementing Circuits in Altera Devices Appendix C Tutorial 2 Implementing Circuits in Altera Devices In this tutorial we describe how to use the physical design tools in Quartus II. In addition to the modules used in Tutorial 1, the following

More information

Graduate Institute of Electronics Engineering, NTU Design of Datapath Controllers

Graduate Institute of Electronics Engineering, NTU Design of Datapath Controllers Design of Datapath Controllers Lecturer: Wein-Tsung Shen Date: 2005.04.01 ACCESS IC LAB Outline Sequential Circuit Model Finite State Machines Useful Modeling Techniques pp. 2 Model of Sequential Circuits

More information

DEPT OF ECE EC6612 -VLSI DESIGN LABORATORY MANUAL (REGULATION-2013) LAB MANUAL DEPARTMENT OF ECE NAME: REGISTER NUMBER: YEAR/SEM.: ACADEMIC YEAR: 2015-2016 DEPT OF ECE EC6612 -VLSI DESIGN LABORATORY MANUAL

More information

Verilog 1 - Fundamentals

Verilog 1 - Fundamentals Verilog 1 - Fundamentals FA FA FA FA module adder( input [3:0] A, B, output cout, output [3:0] S ); wire c0, c1, c2; FA fa0( A[0], B[0], 1 b0, c0, S[0] ); FA fa1( A[1], B[1], c0, c1, S[1] ); FA fa2( A[2],

More information

Contents. Appendix D Verilog Summary Page 1 of 16

Contents. Appendix D Verilog Summary Page 1 of 16 Appix D Verilog Summary Page 1 of 16 Contents Appix D Verilog Summary... 2 D.1 Basic Language Elements... 2 D.1.1 Keywords... 2 D.1.2 Comments... 2 D.1.3 Identifiers... 2 D.1.4 Numbers and Strings... 3

More information