Re: who can help me?how to design one bidirection 1/8 multip
very thanks for you ! but i meet a problem when i call two module of them ,the synthesiser report error is @E: FX173 :"e:\zfd\fpga\xilinx\xcr3032xl\test.v":11:66:11:70|Bidir pin MobRi feeds another bidir pin. You must add a register or buffer between them. the MobRi is one signal of my input ,the top module :
`define MAXBITS 26
module Test(
UsbDcd, UsbRxd, UsbTxd, UsbDtr, UsbDsr, UsbRts, UsbCts, UsbRi,
MobDcd, MobRxd, MobTxd, MobDtr, MobDsr, MobRts, MobCts, MobRi);
inout UsbTxd, UsbDtr, UsbRts;
inout UsbDcd, UsbRxd, UsbDsr, UsbRi, UsbCts;
inout MobDcd, MobRxd, MobTxd, MobDtr, MobDsr, MobRts, MobCts, MobRi;
wire MobDcd, MobRxd, MobTxd, MobDtr, MobDsr, MobRts, MobCts, MobRi;
wire [7 : 0] wDirection;
wire [2 : 0] wSelRxd, wSelTxd, wSelDtr, wSelDsr, wSelRts, wSelCts, wSelDcd, wSelRi;
wire [`MAXBITS : 1] wCtrlData;
assign wDirection = 8'b00110100;
assign wSelRxd = wCtrlData[21 : 19];
assign wSelTxd = wCtrlData[18 : 16];
bi_mux_8_1 MatrixRxd(.Dir(wDirection[6]), .Sel(wSelRxd), .Row(UsbRxd), .Col({MobDcd, MobRxd, MobTxd, MobDtr, MobDsr, MobRts, MobCts, MobRi}));
bi_mux_8_1 MatrixTxd(.Dir(wDirection[5]), .Sel(wSelTxd), .Row(UsbTxd), .Col({MobDcd, MobRxd, MobTxd, MobDtr, MobDsr, MobRts, MobCts, MobRi}));
endmodule
why it is able to appear this error? i use the xilinx CPLD XCR3032XL chip.