Hello Guys, I am working on some verfication of the SoC IP. To verify these IP we are implementing it on FPGA. I am facing an strange problem. One of the IP which i have implemented as Master and slave AHB interface. Since the AMBA interface i am having is a multiplexed bus i need to multiplex the master and slave interface signal. So to do that i am using grant signal of AHB to multiplex common signal (of master and slave). But the problem is in slave mode (grant signal is zero), external HBURST[2:0]=000 (seen through logic analyzer), i have tapped the internal HBURST to test point, i observed that the tapped internal signal value is different from the external HBURST. Internally i am connecting the HBURST to slave HBURST port and to multiplex HBURST i am using the below assign for master mode assign SGNTi = HGRANT[2]; always @(posedge iHCLKBUF or negedge nSYSRST) begin : p_MasterEnable if (nSYSRST == 1'b0) AHBMasterEnable <= 1'b0; else if (HREADY == 1'b1) AHBMasterEnable <= SGNTi; end assign HBURST = (AHBMasterEnable == 1'b1) ? iHBURSTOut : 3'bzzz; iHburstOut is signal which is driven by the Master interface of the IP. I am not able to understand how does the HBURST signal tapped (test point) changed to something other then the external HBURST (HGRANT=0)? One more doubt: Is there any problem in assign the incoming HBURST directly to test point? waiting for ur reply, Thanks and regards williams
Strange FPGA problem
Started by ●August 24, 2005
Reply by ●August 24, 20052005-08-24
Hi, first I would like to suggest to get rid of this construction "always @(posedge iHCLKBUF or negedge nSYSRST)" as it is not really a synthesised construction, so your multiplexer will never operate properly, you can see it in PP&R simulations. Second, your code is not really a multiplexer, but a FF. So I would recommend to think more on architecture. Hope it will help. Regards, Alex> Hello Guys, > > I am working on some verfication of the SoC IP. To verify these IP we > are implementing it on FPGA. > I am facing an strange problem. > > One of the IP which i have implemented as Master and slave AHB > interface. Since the AMBA interface > i am having is a multiplexed bus i need to multiplex the master and > slave interface signal. So to do that > i am using grant signal of AHB to multiplex common signal (of master > and slave). But the problem is in > slave mode (grant signal is zero), external HBURST[2:0]=000 (seen > through logic analyzer), i have tapped > the internal HBURST to test point, i observed that the tapped internal > signal value is different from the external HBURST. > > Internally i am connecting the HBURST to slave HBURST port and to > multiplex HBURST i am using the below assign for master mode > > assign SGNTi = HGRANT[2]; > > always @(posedge iHCLKBUF or negedge nSYSRST) > begin : p_MasterEnable > if (nSYSRST == 1'b0) > AHBMasterEnable <= 1'b0; > else > if (HREADY == 1'b1) > AHBMasterEnable <= SGNTi; > end > assign HBURST = (AHBMasterEnable == 1'b1) ? iHBURSTOut : 3'bzzz; > > iHburstOut is signal which is driven by the Master interface of the IP. > > I am not able to understand how does the HBURST signal tapped (test > point) changed to something other then the external HBURST (HGRANT=0)? > > One more doubt: > Is there any problem in assign the incoming HBURST directly to test > point? > > waiting for ur reply, > Thanks and regards > williams >-- Alex