// task: calculate_sqrt
// --------------------
// Calculates square root accurate to 6 decimal places of a real number
// To use: must have real values "argument" and "result" declared
// (1) Assign argument of square root function to "argument"
// (2) Call task "calculate_sqrt"
// (3) Result of sqrt will be stored in "result."
//
// Example code:
// real argument, result;
// argument = 25.0;
// calculate_sqrt;
// disp("result");
// Outputs "5.0" to stdout
task calculate_sqrt;
real error, result_new;
result = 1.0;
error = 1.0;
while (error > 0.001) begin
result_new = argument/2.0/result + result/2.0;
error = (result_new - result)/result;
if (error < 0.0) error = -error;
result = result_new;
end
endtask