![]() |
|
|
|
#1 |
|
Hello all,
I'm trying to understand a weird behavior I'm observing in the simulator. First I must say it's for a test bench so I don't "really" care about optimality or synthesis. I'm calling a procedure from a continuous process (no sensitivitylist) and the result for the first "iteration" is not what I expect, while all the others are OK. The result can be seen here : http://www.246tnt.com/files/wave.png It shows two runs of the process that I would expect to be identical ... I've run the simulation thru both modelsim and simili with same results. Here is the code snippet : (note it's just a test, not at all real PCI ... ) -- PCI Scenario process type dataseq_t is array(integer range <>) of std_logic_vector(31 downto 0); -- PCI Read sequence -- PCI Write sequence procedure pci_do_write( w : in integer; data : in test_t ) is begin pci_frame_n <= '0'; pci_ad <= data(0); wait for 100 ns; pci_frame_n <= '1'; pci_ad <= data(1); wait for 100 ns; pci_frame_n <= 'Z'; pci_ad <= data(2); end procedure; constant ts : dataseq_t(0 to 2) := ( x"12345678", x"9ABCDEF0", x"13FF005A" ); begin -- Reset wait for 10 ns; pci_do_write(2, ts); wait for 200 ns; end process; Thanks for any insight ... Sylvain Sylvain Munaut |
|
|
|
|
#2 |
|
Posts: n/a
|
Sylvain,
Is there another driver of pci_ad? Looks to me like there is and it is not turned tristated until well into your first pci write cycle. One thing you may want to try is initializing all sources for pci_ad to all 'Z'. Regards, jim > Hello all, > > I'm trying to understand a weird behavior I'm observing in the simulator. > First I must say it's for a test bench so I don't "really" care about > optimality or synthesis. > > I'm calling a procedure from a continuous process (no sensitivitylist) and > the result for the first "iteration" is not what I expect, while all the > others are OK. > > The result can be seen here : > > http://www.246tnt.com/files/wave.png > > It shows two runs of the process that I would expect to be identical ... > I've run > the simulation thru both modelsim and simili with same results. > > Here is the code snippet : (note it's just a test, not at all real PCI > ... ) > > -- PCI Scenario > process > > type dataseq_t is array(integer range <>) of std_logic_vector(31 > downto 0); > > -- PCI Read sequence > > -- PCI Write sequence > procedure pci_do_write( > w : in integer; > data : in test_t > ) is > begin > pci_frame_n <= '0'; > pci_ad <= data(0); > wait for 100 ns; > pci_frame_n <= '1'; > pci_ad <= data(1); > wait for 100 ns; > pci_frame_n <= 'Z'; > pci_ad <= data(2); > end procedure; > > constant ts : dataseq_t(0 to 2) := ( x"12345678", x"9ABCDEF0", > x"13FF005A" ); > begin > > -- Reset > wait for 10 ns; > pci_do_write(2, ts); > wait for 200 ns; > > end process; > > > Thanks for any insight ... > > Sylvain -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ Jim Lewis Director of Training private.php?do=newpm&u= SynthWorks Design Inc. http://www.SynthWorks.com 1-503-590-4787 Expert VHDL Training for Hardware Design and Verification ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ Jim Lewis |
|
|
|
#3 |
|
Posts: n/a
|
Hi Jim
> Is there another driver of pci_ad? Looks to me like there > is and it is not turned tristated until well into your > first pci write cycle. One thing you may want to try is > initializing all sources for pci_ad to all 'Z'. Damn, I missed the obvious ! Since I was modifying my simple test bench to make it more "advanced", I just forgot that there was the PCI target core I'm working on plugged in ... And it reacted to those "weird" test signals ... Sylvain Sylvain Munaut |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Asynchronous process from asp.net page button click event? | Ritha | Software | 0 | 09-29-2009 03:20 PM |
| Recycle Worker Process Not Working | JAB | Software | 0 | 09-04-2008 05:22 PM |
| MCITP and stored procedure permissions | Darrilgibson@gmail.com | MCITP | 5 | 06-07-2008 12:37 PM |
| A+ Exam Revision Update Process Starting | John P. Dearing | A+ Certification | 6 | 02-10-2006 01:44 AM |
| Re: Home service calls | Rick Blythin | A+ Certification | 0 | 07-17-2003 10:41 PM |