mirror of
https://github.com/saymrwulf/uhd.git
synced 2026-05-16 21:10:10 +00:00
34 lines
773 B
Python
Executable file
34 lines
773 B
Python
Executable file
#!/usr/bin/env python
|
|
|
|
speeds = (9600, 19200, 38400, 57600, 115200, 230400)
|
|
|
|
master_clk = 100e6
|
|
wb_clk = master_clk / 2
|
|
|
|
def divisor(speed):
|
|
div0 = wb_clk // (speed * 16)
|
|
div1 = div0 + 1
|
|
actual0 = actual_speed(div0)
|
|
actual1 = actual_speed(div1)
|
|
if abs(actual0 - speed) < abs(actual1 - speed):
|
|
return div0
|
|
else:
|
|
return div1
|
|
|
|
def actual_speed(divisor):
|
|
return (wb_clk // divisor) / 16
|
|
|
|
def doit(speed):
|
|
div = divisor(speed)
|
|
actual = actual_speed(div)
|
|
rel_error = (actual - speed) / speed
|
|
print "target: %6d divisor: %6d actual: %11.4f %6.3f%%" % (speed, div, actual, rel_error*100)
|
|
|
|
def main():
|
|
print "wb_clk = %f" % (wb_clk,)
|
|
for s in speeds:
|
|
doit(s)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|