What you are trying to describe is not a flip-flop that exists. There aren't any rising edge clocked, falling edge load registers in an FPGA.
You could do something hideous like this:
Code Verilog - [expand] |
1
2
3
4
5
6
7
8
| always @ (negedge clk)
load_dly <= load;
assign load_pulse = ~load & load_dly;
always @ (posedge clk or load_pulse)
if (load_pulse) q <= data;
else q <= !q; |
I'm sure there are other ways of using asynchronous preset and reset to generate a load pulse, but I'm not going to figure it out. I don't recommend using the above circuit it's likely to result in timing problems for the tools and would be very difficult to get the timing constraints right to ensure it works across temp/process.
Use at your own risk.