E N D
1. Number and Arithmetic Circuits (Review)
 
2. Learning Objectives How are numbers represented in digital circuits?
How are numbers are added, subtracted? 
3. Unsigned Integers Decimal integer: base-10 or radix-10
Binary integer: base-2 or radix-2
LSB, MSB, nibble, byte
 
4. Unsigned Integers Octal and Hex integers
Any radix r, 
Radix-8: octal
Radix-16: Hex
Conversion between decimal, binary, octal and hex
(857)10=(1101011001)2
(101 011 010 111)2=(5327)8
(1010 1111 0010 0101)2=(AF25)16 
7. Signed Numbers 
8. Signed Numbers Sign-and-magnitude
Magnitude of both positive and negative in the same way
Sign bit 0 ? positive; sign bit 1 ? negative
Example: +5=0101, -5=1101
1s complement
-p: 
By complementing each bit of the number
2s complement
-p:
By complementing each it and adding 1 
10. Half-adder 
11. Full-adder 
12. Ripple-Carry Adder 
13. 2s Complement Addition 
14. 2s Complement Subtraction 
15. Adder/subtractor unit 
16. Number and Arithmetic Circuits (Verilog) 
17. Full adder -- primitives 
18. Full adder -- assign 
19. 4-bit adder--instantiation 
20. Verilog fundamental Lexical conventions
4-value logic
Data types: nets and registers
Port connection rules
 
21. Lexical Conventions White space characters are ignored:
	SPACE, TAB, new line, blank lines
Two forms to introduce comments
	 single line: begin with //
       multiple lines:   /*..long comments */
Verilog is case sensitive
	Lower case letters are unique from upper case letter
	All Verilog keywords are lower case
Identifiers
	begin with an alphabetic character or the underscore character 
	may contain alphabetic characters, numeric characters, _, and $ 
	up to 1024 characters long. 
The instance of a module must be named while the instance name of a primitive is optional.
`include  *.v  
22. Examples of lexical conventions 
23. Set of Logic Values  Sometimes, {0, 1} is not enough 
24. Logic Values in Verilog 0: Logical 0
1: Logical 1
X: unknown
Z: high impedance, floating state 
25. X and Z a = b = 0: c = Z
a = b = 1: c = X
Initially, every line is X
X is used in simulation. In real circuit, the value is determined by the circuit 
26. Representation of numbers 
27. Data types 
28. Nets  Note that net is not a keyword but represents a class of data types.
Default type of net is wire.
A net is assigned value, by
A primitive
Module
Continuous assignment 
29. Nets wire (default)
tri
wand
wor
triand
trior 
30. Net Declaration wire[7:0] data_bus;	// 8-bit vector wire, data_bus[7] -> MSB
wire[0:3] control_bus;	// control_bus[0] -> MSB
data_bus[5], data_bus[3:5], data_bus[k+2]	// access
wire scalared[7:0] bus_a;	// scalared is default
wire vectored[7:0] bus_b;	// Individual bits may not be referenced
wire y1, z_5;		// Multiple declaration
wire A = B+C, D = E+F;	// Implicit continuous assignment
  
31. Register Data Types reg  stores a logic value
integer  support computation
time  stores time as a 64-bit unsigned quantity
real  stores values as real numbers
realtime  store time values as real numbers 
32. Examples of register data types reg
	reg A_Bit_Register;
	reg [31:0] A_word;
 integer (used for counting, index in loops)
	Integer K; 
	For (K=4;K<=15;K=K+1) 
real (accurate modeling of delay values, double precision (64-bit))
	Real delta;
time (to store simulation time)
	time A_Time_Value;
realtime (to store time in real number format)
	 
 
33. Addressing Net and Register Variables  MSB of a part-select of a register = leftmost array index
 LSB = rightmost array index
The index of part-select must be within the range specified in declaration
 If word [7:0] = 8b00000100
word [3:0] = 4
word [5:1] = 2
word [8:1] : error 
34. Constants  Used for readability and maintenance
Declared with keyword parameter
 Value may not be changed during simulation 
35. Port Connections  By order
 By name
 Empty port
Note: primitives by order only 
36. Exercises  
37. Find Syntax Error  reg _a, abc$, 2_bit, myname, and;
 integer [7:0] count_index;
 
   module some_machine (y2,y1,x3,x2,x1,x0)
	input	x0,x1,x2,x3;
	output	y1,y2;
	reg		x0,x1;
	wire	x2,x3;
	wire	y1,y2;	
       
   endmodule