Monday, April 28, 2008

“behavioural model” & “structural model”

The phrases "behavioural model" and "structural model" are commonly used for what we'll call "high-level models" and "synthesizable models". In most cases, what people call structural code contains both structural and behavioural code. The technically correct definition of a structural model is an HDL program that contains only component instantiations and generate statements. Thus, even a program with c <= a AND b; is, strictly speaking, behavioural.

Verilog Shift Register with Test Bench

module shifter (result, value_in, direction, type, length);
output [7:0] result;
input [7:0] value_in;
input direction;
input [1:0] type;
input [2:0] length;
reg [7:0] value_out;
always @(value_in or direction or type or length)
begin
case ({direction, type})
3'b0_00: value_out = value_in >> length;
3'b0_01: case(length)
3'b000: value_out = value_in;
3'b001: value_out = {value_in[7], value_in[7:1]};
3'b010: value_out = {{2{value_in[7]}}, value_in[7:2]};
3'b011: value_out = {{3{value_in[7]}}, value_in[7:3]};
3'b100: value_out = {{4{value_in[7]}}, value_in[7:4]};
3'b101: value_out = {{5{value_in[7]}}, value_in[7:5]};
3'b110: value_out = {{6{value_in[7]}}, value_in[7:6]};
3'b111: value_out = {{7{value_in[7]}}, value_in[7]};
endcase
3'b0_10: case(length)
3'b000: value_out = value_in;
3'b001: value_out = {value_in[0], value_in[7:1]};
3'b010: value_out = {value_in[1:0], value_in[7:2]};
3'b011: value_out = {value_in[2:0], value_in[7:3]};
3'b100: value_out = {value_in[3:0], value_in[7:4]};
3'b101: value_out = {value_in[4:0], value_in[7:5]};
3'b110: value_out = {value_in[5:0], value_in[7:6]};
3'b111: value_out = {value_in[6:0], value_in[7]};
endcase
3'b1_00: value_out = value_in <<>
3'b1_01: value_out = {value_in[7], value_in[6:0] <<>
3'b1_10: case(length)
3'b000: value_out = value_in;
3'b001: value_out = {value_in[6:0], value_in[7]};
3'b010: value_out = {value_in[5:0], value_in[7:6]};
3'b011: value_out = {value_in[4:0], value_in[7:5]};
3'b100: value_out = {value_in[3:0], value_in[7:4]};
3'b101: value_out = {value_in[2:0], value_in[7:3]};
3'b110: value_out = {value_in[1:0], value_in[7:2]};
3'b111: value_out = {value_in[0], value_in[7:1]};
endcase
default: value_out = value_in;
endcase
end
assign result = value_out;
endmodule

--


module testbench;

reg clk, direction;
reg [1:0] type;
reg [2:0] length;
reg [7:0] value_in;

wire [7:0] result;

shifter shifter1(result, value_in, direction, type, length);

initial
begin
clk = 0;
direction = 1;
type = 1;
length = 3;
value_in = 'b11110110;

$display("direction = %d type = %d length = %d value_in = %b", direction, type, length, value_in);

#10 $display("done");

$finish;
end

always #5 clk = !clk;
always @(posedge clk)
$strobe("result: %b", result);
endmodule

Verilog Awareness

* Consider a 2:1 mux , what will be the output F if the Select (sel) is "X" ?
* What is the difference between blocking and nonblocking assignment? Explain with a simple example?
* What is the difference between wire and a reg data type?
* Write code for async reset D-Flip-Flop, Shift Register.
* Write code for 2:1 MUX using different coding styles.
* Write code for parallel encoder and priority encoder.
* Different "case" usage styles! Explain.
* What is the difference between === and == ?
* Why is defparam used for ?
* What is the difference between unary operator and logical operator ?
* What is the difference between task and function ?
* What is the difference between transport and inertial delays?
* What is the difference between casex and case statements ?
* What is the difference between $monitor and $display ?
* What is the difference between compiled, interpreted, event based and cycle based simulator ?

Verilog Awareness

Differentiate between Inter assignment Delay and Inertial Delay ?

What are the different State machine Styles ? Which is better ? Why and when do we use one ove the other? Explain Disadv. and Adv.?

What is the difference between the following lines of code ?

1. reg1<= #10 reg2 ; 2. reg3 = # 10 reg 4 ; What is value of Var1 after the following assignment ? 1. reg Var1; 2. initial begin 3. Var1<= "-" 4. end What is the output of the below code? 1. module quest_for_out(); 2. 3. integer i; 4. reg clk; 5. 6. initial begin 7. clk = 0; 8. #4 $finish; 9. end 10. 11. always #1 clk = !clk; 12. 13. always @ (posedge clk) 14. begin : FOR_OUT 15. for (i=0; i < i =" i">

16. if (i == 5) begin

17. disable FOR_OUT;

18. end

19. $display ( "Current i : %g" ,i);

20. end

21. end

22. endmodule


What is the output of the below code?

1. module quest_for_in();

2.

3. integer i;

4. reg clk;

5.

6. initial begin

7. clk = 0;

8. #4 $finish;

9. end

10.

11. always #1 clk = !clk;

12.

13. always @ (posedge clk)

14. begin

15. for (i=0; i < i =" i">

16. if (i == 5) begin

17. disable FOR_IN;

18. end

19. $display ( "Current i : %g" ,i);

20. end

21. end

22. endmodule

Verilog Blocking Vs Non Blocking, Myths and Facts

I know people who swear by blocking and some who swear by non-blocking.

So here are some thoughts.
There is very little difference between non-blocking and blocking in speed and no errors if done correctly either way.

The main differences are:
Some people like non-blocking because you can tell that a reg on the left hand side of <= is going to be a flip flop after synthesis. /* example 1a */ reg a,b,c; always @(posedge clock) begin b <= a; /* b and c will be flip flops */ c <= b; end /* example 1b */ reg a,b,c; always @(posedge clock) begin c <= b; b <= a; /* b and c will be flip flops */ end /* example 2a */ reg a,b,c; always @(posedge clock) begin b = a; c = b; /* Only c will be a flip flop,b will go away after synthesis. */ /* We could delete the 2 above assignments and replace it with c=a;b=a; In fact, b is the same as c and can be eliminated.*/ end /* example 2b */ reg a,b,c; always @(posedge clock) begin c = b; b = a; /* Both b and c will be flip flops, because these 2 lines are reversed.*/ end Example 1a, 1b and 2b are functionally the same. Example 2a is functionally different from 2b just because the order of the statements. Some people like blocking because it takes less memory in the simulator. /* example NON-BLOCKING_MEMORY */ reg a,b,c; always @(posedge clock) begin /* b will require 2 memory locations*/ b <= a; /*<---because this b memory location will hold value of a */ c <= b; /*<---and this b memory location will hold value of b before the posedge*/ end /* example BLOCKING_MEMORY */ reg a,b,c; always @(posedge clock) begin // b will require ONLY 1 memory location c = b; b = a; end Note that I am talking about SIMULATOR memory, not flip-flop count after synthesis. In most cases, the simulator has to remember the value before and after posedge clock if a reg goes between modules in order in order to "execute modules in parallel", so there may be no savings. Some people like blocking because you can see sharing of resources more readily. // example 5 reg [15:0] a,b,c,d,e,f,j,k,g,h; reg [16:0] x,y,z; always @(posedge clock) begin x = a + b + c + d + e + f + j + k; y = x + g; z = x + h; end // example 6 reg [15:0] a,b,c,d,e,f,j,k,g,h; reg [16:0] y,z; always @(posedge clock) begin y <= (a + b + c + d + e + f + j + k) + g; z <= (a + b + c + d + e + f + j + k) + h; end Even the cheapest synthesizer should share adder logic in example 5, but a slightly smarter synthesizer is required in example 6. You will have fewer problems with race conditions in SIMULATION if you always use non-blocking assignments inside always @(posedge clock) blocks where you want to have flip-flops. file xyz.v : module xyz(a,b,clk); input b,clk; output a; reg a; always @(posedge clk) a = b; endmodule file abc.v : module abc(b,c,clk); input c, clk; output b; reg b; always @(posedge clk) b = c; endmodule Some of the simulators out there will execute module abc first and then module xyx. This effectively transfers contents of c to a in ONE clk cycle. This is what some people refer to as a simulator race conditon. Other simulators will execute module xyz and then module abc giving a different simulation result. In some simulators, order of execution cannot be controlled by users.

Synthesizable Verilog from behavioral constructs - 5

Delay statements, e.g. @(posedge clock), require careful attention if there are several in a row. If there are only delays on the positive edge of the clock you can implement them with a state machine:

Behavioural:

forever
begin
command1;
@(posedge clock);
command2;
@(posedge clock);
command3;
@(posedge clock);
end

Synthesizable:

always @(posedge clock or posedge reset)
if (reset) // reset the state machine when reset is high
begin
state <= 0;
end
else
begin
case (state)
0 : begin
command1;
state <= 1;
end

1 : begin
command2;
state <= 2;
end

2 : begin
command3;
state <= 0;
end
endcase
end

If both clock edges are present, then you could implement it in synthesizable Verilog with a state machine changing values on both clock edges:

Behavioural:

forever
begin
command1;
@(posedge clock);
command2;
@(negedge clock);
command3;
@(posedge clock);
@(posedge clock);
command4;
@(negedge clock);
end

Synthesizable:

always @(posedge clock or negedge clock or posedge reset)
if (reset) // reset the state machine when reset is high
begin
state <= 0;
end
else
begin
case (state)
0 : begin
command1;
state <= 1;
end

1 : if (clock == 1) // wait for the positive edge
begin
command2;
state <= 2;
end

2 : begin // this will definitely begin at the negative edge as state 1 precedes it
command3;
state <= 3;
end

3 : state <= 4; // we arrive at the positive edge of the clock, but need to wait a clock cycle

4 : if (clock == 1) // wait for the positive edge
begin
command4;
state <= 0;
end // we'll get back to state 0 at the negative clock edge, the right time for command1
endcase
end

As you can see, multiple clock edges requires care to implement in synthesizable Verilog.


Note: in general commandi refers to a block of commands. It is assumed there is an appropriate clock for the case statement state machines. Care is required in setting appropriate reset states, initialization, and completion of use of a state machine:

* Is there a signal to tell the state machine to begin?
* Does a done signal go high, signalling the state machine has finished?
* When it is not in operation, does the state machine idle correctly? Does it change signal values shared with other code? Does it set outputs from it to appropriate idling values?
* Is the state machine reset to the idle state by a reset signal?
* Ensure that you initialize all registers.
* Ensure that your state register has the correct bit width - if it is too small, assigning a larger state value will just return it to an earlier state.

Design Guidelines and Criteria for Digital Electronics

apparently these pages on guidelines and criteria, are from NASA. I think this is a very nice article with good amount discussion on critical aspects of Digital Design

Synthesizable Verilog from behavioral constructs - 4

When implementing Verilog tasks in modules, the best approach is to group tasks that have the same output signals into separate modules. If different modules control the same signal, then explicit arbitration logic is required to specify which module is controlling the signal at a given time. To put tasks in a separate module, you will require start and completion handshaking signals.

Behavioural:

task update_a_and_b;
begin
a = y;
wait (z != 0) b = z;
end
endtask

...

y = x + w;
update_a_and_b; // calls the task
x = a + b;
@(posedge clock);
x = b;
if (y == x) update_a_and_b;
@(posedge clock);
command1;

Care must be taken when translating this into synthesizable Verilog, to preserve correct timing:

module update_a_and_b(do_update_a_and_b, clock, reset, a, z, done_update_a_and_b, b_temp, x_temp);
input do_update_a_and_b; // this signal should go high for only one clock cycle
input clock;
input reset; // reset this module when reset goes high
input [7:0] a;
input [7:0] z;

output done_update_a_and_b;
output [7:0] b_temp;
output [7:0] x_temp;

reg done_update_a_and_b;
reg [7:0] b_temp;
reg [7:0] x_temp;

reg state;

always @(posedge refclk or posedge reset)
if (reset)
begin
state <= 0; done_update_a_and_b = 0; b_temp = 0; x_temp = 0; end else if (do_update_a_and_b && (state == 0)) begin done_update_a_and_b = 0; if (z != 0) begin b_temp = z; x_temp = a+b_temp; // x value is update inside this module, as it must occur immediately when z != 0 done_update_a_and_b = 1; // stay in state 0, we've finished end else state <= 1; end else begin case (state) 0 : done_update_a_and_b = 0; // do nothing, this is the idle state 1 : if (z != 0) begin b_temp = z; x_temp = a+b_temp; // x value is update inside this module, as it must occur immediately when z != 0 done_update_a_and_b = 1; state <= 0; // stay in state 0, we've finished end endcase end endmodule ... reg [2:0] top_state; ... case (top_state) 0 : begin y = x + w; a = y; // this must happen immediately if (z != 0) // we have to update x and b immediately if z != 0 begin b = z; x = a + b; top_state <= 2; end else begin do_update_a_and_b = 1; // call the task top_state <= 1; end end 1 : begin do_update_a_and_b = 0; // stays high for only one cycle if (done_update_a_and_b) begin // we assume the values of x and b weren't needed on the previous cycle, otherwise additional circuitry is needed // or x_temp and b_temp values need to be used on that cycle - it's very difficult to coordinate this correctly // in the general case x = x_temp; b = b_temp; top_state <= 2; end end 2 : begin x = b; if (y == x) begin a = y; // this must happen immediately if (z != 0) // we have to update x and b immediately if z != 0 begin b = z; x = a + b; top_state <= 4; end else begin do_update_a_and_b = 1; // call the task top_state <= 3; end end else top_state <= 4; end 3 : begin do_update_a_and_b = 0; // stays high for only one cycle if (done_update_a_and_b) begin // we assume the values of x and b weren't needed on the previous cycle, otherwise additional circuitry is needed // or x_temp and b_temp values need to be used on that cycle - it's very difficult to coordinate this correctly // in the general case x = x_temp; b = b_temp; top_state <= 4; end end 4: command1; endcase Now if we didn't care about having a couple of additional cycle delays between updates (i.e. assuming nothing depends on the variable values immediately, and nothing else is changing variable values), we could implement this in a far simpler fashion: module update_a_and_b(do_update_a_and_b, clock, reset, a, z, done_update_and_b, b_temp, x_temp); input do_update_a_and_b; // this signal should go high for only one clock cycle input clock; input reset; // reset this module when reset goes high input [7:0] a; input [7:0] z; output done_update_and_b; output [7:0] b_temp; output [7:0] x_temp; reg done_update_and_b; reg [7:0] b_temp; reg [7:0] x_temp; reg state; always @(posedge refclk or posedge reset) if (reset) begin state <= 0; done_update_and_b = 0; b_temp = 0; x_temp = 0; end else if (do_update_a_and_b && (state == 0)) begin state <= 1; done_update_a_and_b = 0; end else begin case (state) 0 : done_update_and_b = 0; // do nothing, this is the idle state 1 : if (z != 0) begin b_temp = z; x_temp = a+b_temp; // x value is update inside this module, as it must occur immediately when z != 0 done_update_and_b = 1; state <= 0; // stay in state 0, we've finished end endcase end endmodule ... reg [2:0] top_state; ... case (top_state) 0 : begin y = x + w; do_update_a_and_b = 1; // call the task top_state <= 1; end 1 : begin do_update_a_and_b = 0; // stays high for only one cycle if (done_update_and_b) begin x = x_temp; b = b_temp; top_state <= 2; end end 2 : begin x = b; if (y == x) begin do_update_a_and_b = 1; // call the task top_state <= 3; end else top_state <= 4; end 3 : begin do_update_a_and_b = 0; // stays high for only one cycle if (done_update_and_b) begin x = x_temp; b = b_temp; top_state <= 4; end end 4: command1; endcase Note: in general commandi refers to a block of commands. It is assumed there is an appropriate clock for the case statement state machines. Care is required in setting appropriate reset states, initialization, and completion of use of a state machine: o Is there a signal to tell the state machine to begin? o Does a done signal go high, signalling the state machine has finished? o When it is not in operation, does the state machine idle correctly? Does it change signal values shared with other code? Does it set outputs from it to appropriate idling values? o Is the state machine reset to the idle state by a reset signal? o Ensure that you initialize all registers. o Ensure that your state register has the correct bit width - if it is too small, assigning a larger state value will just return it to an earlier state.

synthesizable Verilog from behavioral constructs - 3

To modify a behavioural Verilog fork and join statement to make it synthesizable.


Behavioural:

command1;
fork
// start of fork block 1
begin
wait (y != 0);
a = y;
end

// start of fork block 2
begin
wait (z != 0);
b = z;
end
join
command2;

command2 will execute only after fork blocks 1 and 2 have finished.

Synthesizable:

case (state)
0 : begin
command1;
done_fork_block_1 = 0;
done_fork_block_2 = 0;

if (y != 0)
begin
a = y;
done_fork_block_1 = 1;
end

if (z != 0)
begin
b = z;
done_fork_block_2 = 1;
end

if (done_fork_block_1 & done_fork_block_2) command2;
else state <= 1; end 1 : begin if ((y != 0) && !done_fork_block_1) begin a = y; done_fork_block_1 = 1; end if ((z != 0) && !done_fork_block_2) begin b = z; done_fork_block_2 = 1; end if (done_fork_block_1 & done_fork_block_2) command2; // else state <= 1; end endcase In some special cases, it may not be necessary to have done signals, but in general the blocks of commands being executed in parallel by fork may finish at different times. Again, if a cycle delay between command1 and the other commands executing is acceptable, then this code is simpler: case (state) 0 : begin command1; done_fork_block_1 = 0; done_fork_block_2 = 0; state <= 1; end 1 : begin if ((y != 0) && !done_fork_block_1) begin a = y; done_fork_block_1 = 1; end if ((z != 0) && !done_fork_block_2) begin b = z; done_fork_block_2 = 1; end if (done_fork_block_1 & done_fork_block_2) command2; // else state <= 1; end endcase As y or z may have different values after a clock cycle passes, care needs to be taken in choosing the simpler alternative, that doesn't exactly implement the behavioural code. Note: in general commandi refers to a block of commands. It is assumed there is an appropriate clock for the case statement state machines. Care is required in setting appropriate reset states, initialization, and completion of use of a state machine: * Is there a signal to tell the state machine to begin? * Does a done signal go high, signalling the state machine has finished? * When it is not in operation, does the state machine idle correctly? Does it change signal values shared with other code? Does it set outputs from it to appropriate idling values? * Is the state machine reset to the idle state by a reset signal? * Ensure that you initialize all registers. * Ensure that your state register has the correct bit width - if it is too small, assigning a larger state value will just return it to an earlier state.

synthesizable Verilog from behavioral constructs - 2

Modifying a behavioural Verilog while statement to make it synthesizable.


Behavioural:

command1;
while (x != 0)
begin
command2;
end
command3;

Synthesizable:

case (state)
0 : begin
command1;
if (x != 0)
begin
command2;
state <= 1; end else command3; end 1 : if (x != 0) begin command2; end else command3; endcase Again, if a cycle delay between command1 and the other commands executing is acceptable, simpler code is the following: case (state) 0 : begin command1; state <= 1; end 1 : if (x != 0) begin command2; end else command3; endcase Note: in general commandi refers to a block of commands. It is assumed there is an appropriate clock for the case statement state machines. Care is required in setting appropriate reset states, initialization, and completion of use of a state machine: o Is there a signal to tell the state machine to begin? o Does a done signal go high, signalling the state machine has finished? o When it is not in operation, does the state machine idle correctly? Does it change signal values shared with other code? Does it set outputs from it to appropriate idling values? o Is the state machine reset to the idle state by a reset signal? o Ensure that you initialize all registers. o Ensure that your state register has the correct bit width - if it is too small, assigning a larger state value will just return it to an earlier state.

Verilog Awareness - Interview Questions

Q: Given the following Verilog code, what value of "a" is "displayed"?

always @(clk)
begin
a = 0;
a <= 1; $display(a); end

Q: Given the following snippet of Verilog code, draw out the waveforms for "clk" and "a".

always @(clk)
begin
a = 0;
#5 a = 1;
end

Q: What is the difference between the following two lines of Verilog code?

#5 a = b;
a = #5 b;

Q: Write Verilog to provide a divide-by-3 clock from the standard clock.

Q: What is the difference between:

c = foo ? a : b;

and

if (foo) c = a; else c = b;

Q: Using the given, draw the waveforms for the following (each version is separate, i.e. not in the same run):

reg clk;
reg a;
always #10 clk = ~clk;

(1) always @(clk) a = # 5 clk;
(2) always @(clk) a = #10 clk;
(3) always @(clk) a = #15 clk;

Now, change to a wire, and draw for:

(4) assign #5 a = clk;
(5) assign #10 a = clk;
(6) assign #15 a = clk;

synthesizable Verilog from behavioral constructs - 1

Modifying a behavioural Verilog wait statement to make it synthesizable.


Behavioural:

command1;
wait (x != 0);
command3;

Synthesizable:

case (state)
0 : begin
command1;
if (x != 0) command3;
else state <= 1; end 1 : if (x != 0) // wait until this is true command3; endcase You also need to add the variable state, reg state. If a cycle delay between command1 and command3 does not matter, then the following is simpler, but not identical to the original: case (state) 0 : begin command1; state <= 1; end 1 : if (x != 0) // wait until this is true command3; endcase The latter approach is preferred in many cases for coding simplicity. Note: in general commandi refers to a block of commands. It is assumed there is an appropriate clock for the case statement state machines. Care is required in setting appropriate reset states, initialization, and completion of use of a state machine: * Is there a signal to tell the state machine to begin? * Does a done signal go high, signalling the state machine has finished? * When it is not in operation, does the state machine idle correctly? Does it change signal values shared with other code? Does it set outputs from it to appropriate idling values? * Is the state machine reset to the idle state by a reset signal? * Ensure that you initialize all registers. * Ensure that your state register has the correct bit width - if it is too small, assigning a larger state value will just return it to an earlier state.

Free Download - handbook, code check, training guide, electrodynamic

Handbook of electrical design details
http://rapidshare.com/files/11403239/Handbook_of_Electrical_Design_Details.rar

Code check electrical - an illustrated guide to wiring a safe house, code check series, reducing code violation, types of residential electrical system.
http://rapidshare.com/files/49156955/Code.Check.Electrical.Illustrated.Guide.to.Wiring.a.Safe.House_1561587389.zip

Training guide - networking essentials, ASCII, IEEE 802 standard.
http://rapidshare.com/files/48890202/MCSE_Training_Guide-Networking_Essentials-1562057499.rar

Electrodynamic
http://depositfiles.com/files/1494510

Bio mems technologies and applications - microelectromechanical system, fundamentals principles, engineering aspects, biomedical samples.
http://rapidshare.com/files/49075783/Bio-MEMS_ertu.rar

Coarse and Fine grained architectures

Coarse-grained architectures consist of fairly large logic blocks, often containing two or more look-up tables and two or more flip-flops. In a majority of these architectures, a four-input look-up table (think of it as a 16x1 ROM) implements the actual logic. The larger logic blocks usually corresponds to improved performance.

Fine-grained circuits, consist of the basic cell being simple (OR, AND,and NOT).

free download CMOS Logic books

CMOS Memory Circuits
By Tegze P. Haraszti
http://depositfiles.com/files/348411


CMOS Electronics How It Works, How It Fails
By Jaume Segura
http://mihd.net/4th3zp


CMOS Analog Circuit Design
By Phillip E. Allen
http://rapidshare.com/files/24373742/cmos_analog_circuit_design.rar


Multi-voltage CMOS Circuit Design
By Volkan Kursun
http://mihd.net/13csay


Low-Power CMOS Design for Wireless Transceivers
By Alireza Zolfaghari
http://rapidshare.com/files/23566222/kluwer_-_low_power_cmos_design_for_wireless_transceivers_1402072538.rar


CMOS IC Layout Concepts, Methodologies, and Tools
By Dan Clein
http://rapidshare.de/files/21314818/CLEIN__D.__1999_._CMOS_IC_Layout_-_Concepts__Methodologies__and_Tools.rar


Low-Power CMOS Circuits
By Christian Piguet
http://rapidshare.com/files/12380998/Piguet.rar


Nano-CMOS Circuit and Physical Design
By Ban Wong
http://depositfiles.com/en/files/398957


CMOS Current Amplifiers
By Giuseppe Palmisano
http://rapidshare.com/files/24372116/kluwer_-_cmos.current.amplifiers.rar


Design of CMOS Radio-Frequency Integrated Circuits
By Thomas H. Lee
http://mihd.net/dlg6jp

free download CMOS Layout Design books

CMOS Circuit Design, Layout, and Simulation By R. Jacob Baker
http://rapidshare.com/files/44535291/CMOS_Circuit_Design_Layout_and_Simulation_2nd_Baker.pdf


Multi-voltage CMOS Circuit Design
By Volkan Kursun
http://mihd.net/13csay


CMOS Analog Circuit Design
By Phillip E. Allen
http://mihd.net/6qk4xd


CMOS IC Layout Concepts, Methodologies, and Tools
By Dan Clein
http://rapidshare.de/files/21314818/CLEIN__D.__1999_._CMOS_IC_Layout_-_Concepts__Methodologies__and_Tools.rar


High Speed CMOS Design Styles
By Kerry Bernstein
http://mihd.net/5.3615/High.Speed.djvu.html



Nano-CMOS Circuit and Physical Design
By Ban Wong
http://depositfiles.com/files/398957


Parasitic-Aware Optimization of CMOS RF Circuits
By David J. Allstot
http://mihd.net/1ihxzv


IC Layout Basics A Practical Guide
By Christopher
http://mihd.net/ic9s5z

free download cmos analog book

Ultra_Low_Power_Capacitive_Sensor_Interfaces

http://rapidshare.com/files/73934509/Ultra_Low_Power_Capacitive_Sensor_Interfaces.ace

pass=yaali

Switched-Capacitor_Techniques_For_High-Accuracy_Filter_And_ADC_Design

http://rapidshare.com/files/73935266/Switched-Capacitor_Techniques_For_High-Accuracy_Filter_And_ADC_Design.ace

pass=yaali

RF POWER AMPLIFIERS FOR MOBILE COMMUNICATIONS

http://rapidshare.com/files/73935840/RF_POWER_AMPLIFIERS_FOR_MOBILE_COMMUNICATIONS.ace

pass=yaali

Low-Frequency Noise In Advanced Mos Devices

http://rapidshare.com/files/73936346/LowFrequency_Noise_In_Advanced_Mos_Devices.ace

pass=yaali

CMOS_Single_Chip_Fast_Frequency_Hopping_Synthesizers_For_Wireless_Multi-Gigahertz_Applications

http://rapidshare.com/files/73936787/CMOS_Single_Chip_Fast_Frequency_Hopping_Synthesizers_For_Wireless_Multi-Gigahertz_Applications.ace

pass=yaali

Broadband_Opto-Electrical_Receivers_in_Standard_CMOS

http://rapidshare.com/files/73937404/Broadband_OptoElectrical_Receivers_in_Standard_CMOS.ace

pass=yaali

Adaptive_Low-Power_Circuits_for_Wireless_Communications

http://rapidshare.com/files/73938563/Adaptive_LowPower_Circuits_for_Wireless_Communications.ace

pass=yaali

Circuit wizard Pro Control studio Pro

http://mihd.net/4ti7ck

free download Electromagnetics, Circuit Theory, Digital Signal books

Engineering ElectromagneticsBy William Hayt
http://mihd.net/bmtaor

Computational Methods for Electromagnetics and Microwaves By Richard C. Booton
http://rapidshare.com/files/235923/Computational_Methods_for_Electromagnetics_and_Microwaves.rar

Antenna and EM Modeling with MatlabBy Sergey N. Makarov
http://rapidshare.com/files/9753581/_Matlab__Wiley_-_Antenna_and_EM_Modeling_with_MATLAB.zip.html

Ground Penetrating Radar
http://file2upload.com/file/1161/Ground-Penetrating-Radar.pdf.html

Fourier Transforms in Radar and Signal ProcessingBy David Brandwood
http://rapidshare.com/files/14475484/1580531741.rar

Digital Signal Processing: A Computer-Based ApproachBy Sanjit K Mitra
http://rapidshare.com/files/23459161/mcgraw_hill_-_digital_signal_processing_-_computer_based_approach.rar

Signal Analysis : Time, Frequency, Scale, and StructureBy Ronald L. Allen Duncan Mills
http://rapidshare.com/files/3510152/0471234419.pdf

Understanding Digital Signal ProcessingBy Richard G. Lyons
http://mihd.net/ty4aro

Digital Signal Processing: DSP and ApplicationsBy Dag Stranneby
http://rapidshare.com/files/11805490/0750648112.rar

http://mihd.net/muve0c

Introduction to Digital Signal Processing and Filter DesignBy B. A. Shenoi
http://rapidshare.com/files/8096928/0471464821.zip


Signal Processing and Linear Systems, 2000-02By B. P. Lathi
http://rapidshare.de/files/33553548/0195219171.zip


Signals and SystemsBy Bernd Girod
http://depositfiles.com/files/289546/Signals_and_Systems__Wiley_.pa.html


High-Fidelity Circuit Design.By Norman, & George Cooper, Crowhurst
http://rapidshare.com/files/12452683/Crowhurst.pdf


Electrical Circuit Theory and Technology : Revised editionBy John Bird
http://mihd.net/lc1seu


Coombs' Printed Circuits HandbookBy Clyde F. Coombs
http://mihd.net/1sun5d


The Art of ElectronicsBy Paul Horowitz
http://rapidshare.com/files/5195392/art-elect.rar


Digital Switching Systems: System Reliability and AnalysisBy Syed Riffat Ali
http://mihd.net/ms2h7t


Verilog HDL (2nd Edition)By Samir Palnitkar
http://mihd.net/r01wld


Principles and Applications of Electrical EngineeringBy Giorgio Rizzoni
http://mihd.net/lkajm3


SPICE for Power Electronics and Electric Power, Second Edition
By Mohammaed Rashid
http://rapidshare.com/files/9508729/SPICE_for_Power_Electronics__Second_Edit

Free Download - digital, electrodynamics, antenna, circuit board, encyclopedia

Digital filter design - design and implementations.
http://uploadphiles.com/index.php?page=main&id=422e12220&name=0471828963.rar

Electrodynamics of solids

http://rapidshare.com/files/5698787/AA451006.rar.html

Electronics for dummies

http://rapidshare.com/files/6306731/Electronics_for_Dummies.rar

Practical antenna handbook - high frequency dipole, vertically polarized HF, Multiband and tunabe wire, hidden and limited space, directional phased vertical and directional beam, transmitting and recieving, shortwave reception, microwave, mobile, marine, and emergency, radio and electronics technicians, amateur radio operators, citizen banders, shortwave listeners, radio enthusiasts and professionals of al types.
http://rapidshare.com/files/51881408/Practical_Antenna_Handbook_4th_Edition-0071374353.rar

Tab electronics guide to understanding - electricity and electronics second edition
http://rapidshare.com/files/68543062/_djvu_Mcgraw_Hill_-_2000_-_Tab_Electronics_Guide_To_Understanding_Electricity___Electronics.djvu
http://rapidshare.com/files/68554842/0071360573.rar
http://depositfiles.com/files/2313289
http://depositfiles.com/files/2314182

Complete PCB design usig OrCad capture and layout - printed circuit board, practicing engineers,software package, schematic diagram.
http://rapidshare.com/files/61798662/Newnes_Complete_PCB_0750682140.rar

Heteroepitaxy of semiconductors - theory growth and characterization, with graph ilustrate and discussion.
http://w14.easy-share.com/6438681.html

Encylopedia of television
- focuses on the history and current state of television.
http://w14.easy-share.com/6261431.html

Newness complete PCB design using orcad capture and layout
http://anonym.to/?http://rapidshare.com/files/61715810/ReallyUsefulEbooks.ne

Free Download - Electrical Electronics, signal,design, ebook, dictionary

Spring signal processing for telecommunications and multimedia
http://rapidshare.de/files/7886988/Springer_Signal.Processing.for.Telecommunications.and.Multimedia_MAZ.rar.html

Newnes short range wirless communications
http://rapidshare.de/files/7886577/Newnes_-_Short-Range_Wireless_Communications_MAZ.rar.html

An Unconventional Guide to Electronics, 2nd Edition
http://rapidshare.de/files/7889674/bbbebook_MAZ.rar.html

Digital signal processing system level design
http://rapidshare.de/files/7884093/Digital.Signal.Processing.System-Level.Design.Using.LabVIEW_MAZ.rar.html

Digital signal processing
http://rapidshare.de/files/7884463/LabVIEW.Digital.Signal.Processing_MAZ.rar.html

Integrated electronics - electronics and lots of problems
http://people.na.infn.it/%7Ebarbarin/MaterialeDidattico/libri/libri_base/Millman%20Halkias%20-%20Integrated%20Electronic,%20Analog%20And%20Digital%20Circuits%20And%20Systems%20-%20Mcgraw%20Hill.pdf

Electronics and communications book set - verilog HDL synthesis, Statistical signal processing, signal and system, handbook of time series, analog and digital circuits for electronics control system, data acquisition and signl processing,guide to rish processors for programmer and engineers, Multiprocessor, system, chip, digital frequency systhesis, mobile telecom, protocol, data, network, mms technologies, fundamental of swithcing theory, fiber optic essetials, practical circuit design, programming the paraller port.
http://www.esnips.com/web/New12192007

The illustrated dictionary for electronics - reference, easy to read, abbreviation, robotics, artificial intelligence, laser, tv, radio, IC technology, digital and analogi electronics, communication, audio, video.
http://rapidshare.de/files/10995676/The_Illustrated_Dictionary_of_Electronics.rar

Introduction to fiber optics
Mirror
http://www.esnips.com/doc/24b27201-ea99-420a-9b76-8f76124ad7e0/Intro
http://www.esnips.com/doc/35705a6b-0fc3-45b1-97b6-8f1220a433d9/Int

Basic circuit analysis and outline eBook
http://rapidshare.com/files/1275285/SO19.rar.html

Digital principles
http://rapidshare.com/files/1288980/SO07.rar.html

Electronic cicuits

http://rapidshare.com/files/1288034/SO06.rar.html

Visual basic for electronics applicatons
http://www.rapidshare.com/files/33498226/Visual_Basic_for_Electronics..r

Digital logic and computer design
http://mihd.net/li0n9m

Digital signal processing principles eBooks and solutions
http://rapidshare.com/files/2324711/DigitalSignalProcessing__Solutions
http://rapidshare.com/files/2326469/DigitalSignalProcessing_3rdEd_muy

Principles of digital communication system and computer networks
http://rapidshare.de/files/26713962/1584503297.zip

Wireless communications principles and practice
http://rapidshare.com/files/10872620/Wireless.Communications-Principles.and.Practice_K_0133755363.rar

Digital communication and principles
http://rapidshare.com/files/18554327/Digital_Communications_Proakis.rar

Theory and problem of electric circuit
http://rapidshare.com/files/37523615/1181983281_so06.rar.schaums.outline

Free download Electrical dictionary, handbook, power system etc.

Electrical engineering dictionary
http://www.filestube.com/6a51a66a2bf71fb803e9/go.html

Standard handbook for electrical engineer

http://www.filestube.com/1da4e4ac5a64a1a303e9/go.html

Electrical and electronics principles and technology

http://www.filestube.com/eda686f24ecedfeb03e9/go.html

Principles and applications of electrical engineering

http://www.filestube.com/c01047f178b96d8103ea/go.html

Electrical power system quality 2nd editions

http://www.filestube.com/aaf7cdf9c3ec55d003e9/go.html

Electrical circuit theory and technology
http://www.filestube.com/026d6d488b5854d203e9/go.html

Fast analytical techniques electrical electronics circuits

http://www.filestube.com/d804b3d3894e7ff103e9/go.html

Handbook of electrical design details second edition

http://www.filestube.com/4b1e2d8c62dee1a003ea/go.html

ELectrical instulation for rotating machine

http://www.filestube.com/ac1ed3cca285f73003e9/go.html

Electrical and electronics principles and technology

http://www.filestube.com/22b676c00e3a3e3b03e9/go.html

Electrical contacts fundamentals applications and technology
http://www.filestube.com/36dc2f96ca9ecddc03e9/go.html

Setting fires with electrical timers

http://www.filestube.com/90b208ac89e548ec03e9/go.html

Electrical engineers portable handbook

http://www.filestube.com/f8e0bc88b393259003e9/go.html

free download CDMA Systems Engineering Handbook

CDMA Systems Engineering Handbook
By Jhong Sam Lee
http://rapidshare.com/files/7957458/CDMA.Systems.Engineering.Handbook.pdf

Archive