On Sat, Sep 20, 2008 at 4:32 AM, Deepak Patel <[EMAIL PROTECTED]> wrote: > Hello all, > > I want to a write a method in Python to poll a register for '1' or '0'. It > is kind of very simple in verilog, but not sure if python provides > flexibility or not. > > My algorithm (kind of Verilog syntax where I can access the bits without any > extra processing) is as follows: > > poll_reg ( input bit_pos, input poll_val, reg_offset) > { > // In this bit_pos is the position of bit in my register read which are > being polled to become poll_val. Poll_val can be either 0 or 1. > > matched = 0; > while (matched != 1) > begin > read_data = read_reg(reg_offset); > if (read_data[bit_pos] == poll_val) > begin > matched = 1; > end > else > begin > matched = 0; > end > end > }
This is more C-like bit operation. You need to get a mask by right shiting 1 by bit_pos and do binary AND with the register value. def poll_reg(bit_pos, poll_val, reg_offset): mask = 1 << bit_pos while read_read(reg_offset) & mask == poll_val: continue _______________________________________________ BangPypers mailing list BangPypers@python.org http://mail.python.org/mailman/listinfo/bangpypers