A blocking assignment is one in which the statements are executed sequentially, i.e. first statement is executed and variable is assigned a value then second is executed and so on. A non blocking assignment is one in which statements occurs concurrently. Only nonblocking assignments should be used in sequential circuit.
e.g initial begin a=b; //blocking c<=a; //nonblocking d=c; //blocking end
In this example firstly the value of b is assigned to a and this value is assigned to c only after execution of first statement. The second and the third statements are executed simultaneously, i.e. value a is assigned to c and previous value if c is assigned to d.
For D Latch:always@(enable)q<=d;
For D flip flop:always@(posedge clock)q<=d;
One day work = 1 / 20
One man's one day work = 1 / ( 20 * 75)
No. f workers = 50
One day work = 50 * 1 / ( 20 * 75)
The total no. of days required to complete the work = (75 * 20) / 50 = 30.
ROM cannot be used as stack because it is not possible to write to ROM.