![]() |
|
|
|||||||
![]() |
VHDL - General question on the simulation of VHDL-code with Alteras QuartusII |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
Hello everybody,
I just started with VHDL and I have three (probably simple) questions: Using Alteras Quartus 2 Tool I want to do some VHDL simulation: A simple example: ARCHITECTURE TEST OF TEST IS BEGIN x <= i after 20 ns; END TEST; Using the simulator that is integrated in Quartus 2 I generated a simple waveform where: i = ' 0 ' form 0 ns to 10 ns i = ' 1 ' for time > 10 ns When I switch to "Functional Simulation" timing is ignored (as expected). When I switch to "Timing Simulation" I get: x = '1' for time > 23 ns which obviously reflects the timing of the FPGA for which the design was synthesised by Quartus II. Now my questions are as follows: Question 1: How can I just perform a VHDL simulation that reflects the timing expressed by the statement "... after 20 ns"? Question 2: How can I instruct Quartus II to accept all valid VHDL-code and not only code that actually can be synthesised? I just want to simulate a VHDL model! Question 3: How can run simple test benches written in VHDL (like in the example attached below) and watch the resulting waveforms using Quartus II. Any help is highly appreciated! Best regards Markus -- Test Bench: LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY TEST IS PORT ( i1, i2: IN std_logic; o: OUT std_logic ); END TEST; ARCHITECTURE TEST OF TEST IS BEGIN o <= i1 and i2; END TEST; LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY TB_TEST IS END TB_TEST; ARCHITECTURE TB_TEST of TB_TEST is COMPONENT TEST IS PORT ( i1, i2: IN std_logic; o: OUT std_logic ); END COMPONENT; SIGNAL w_i1, w_i2: std_logic; BEGIN DUT: TEST PORT MAP( i1 => w_i1, i2 => w_i2); STIMULI: PROCESS BEGIN w_i1 <= '1'; WAIT FOR 50 ns; w_i2 <= '1'; WAIT FOR 50 ns; w_i1 <= '0'; WAIT FOR 50 ns; END PROCESS STIMULI; END TB_TEST; Markus Jochim |
|
|
|
|
#2 |
|
Posts: n/a
|
Markus Jochim wrote:
> Using Alteras Quartus 2 Tool I want to do some VHDL simulation: > A simple example: > ARCHITECTURE TEST OF TEST IS > BEGIN > x <= i after 20 ns; > END TEST; > Using the simulator that is integrated in Quartus 2 I generated a simple > waveform where: The integrated simulator is not a vhdl simulator. Use the quartus oem modelsim program instead. -- Mike Treseler Mike Treseler |
|
|
|
#3 |
|
Posts: n/a
|
On Jun 6, 11:14 am, Markus Jochim <joc...@dc.uni-due.de> wrote:
> Hello everybody, > > I just started with VHDL and I have three (probably simple) questions: > > Using Alteras Quartus 2 Tool I want to do some VHDL simulation: > > A simple example: > > ARCHITECTURE TEST OF TEST IS > BEGIN > x <= i after 20 ns; > END TEST; > > Using the simulator that is integrated in Quartus 2 I generated a simple > waveform where: > > i = ' 0 ' form 0 ns to 10 ns > i = ' 1 ' for time > 10 ns > > When I switch to "Functional Simulation" timing is ignored (as > expected). When I switch to "Timing Simulation" I get: > > x = '1' for time > 23 ns > > which obviously reflects the timing of the FPGA for which the design was > synthesised by Quartus II. > > Now my questions are as follows: > > Question 1: How can I just perform a VHDL simulation that reflects the > timing expressed by the statement "... after 20 ns"? > > Question 2: How can I instruct Quartus II to accept all valid VHDL-code > and not only code that actually can be synthesised? I just want to > simulate a VHDL model! > > Question 3: How can run simple test benches written in VHDL (like in the > example attached below) and watch the resulting waveforms using Quartus II. > > Any help is highly appreciated! > > Best regards > > Markus > > -- Test Bench: > > LIBRARY IEEE; > USE IEEE.std_logic_1164.ALL; > > ENTITY TEST IS > PORT ( > i1, i2: IN std_logic; > o: OUT std_logic > ); > END TEST; > > ARCHITECTURE TEST OF TEST IS > BEGIN > o <= i1 and i2; > END TEST; > > LIBRARY IEEE; > USE IEEE.std_logic_1164.ALL; > > ENTITY TB_TEST IS > END TB_TEST; > > ARCHITECTURE TB_TEST of TB_TEST is > COMPONENT TEST IS > PORT ( > i1, i2: IN std_logic; > o: OUT std_logic > ); > END COMPONENT; > > SIGNAL w_i1, w_i2: std_logic; > BEGIN > DUT: > TEST PORT MAP( i1 => w_i1, > i2 => w_i2); > > STIMULI: > PROCESS > BEGIN > w_i1 <= '1'; > WAIT FOR 50 ns; > w_i2 <= '1'; > WAIT FOR 50 ns; > w_i1 <= '0'; > WAIT FOR 50 ns; > END PROCESS STIMULI; > END TB_TEST; To expand on Mike's answer: Question 1: Use a real simulator. Question 2: You can't; Quartus is essentially a front end for a synthesizer (Use a real simulator.) Question 3: Use a real simulator. ghelbig@lycos.com |
|
|
|
#4 |
|
Posts: n/a
|
<> wrote in message news: oups.com... > On Jun 6, 11:14 am, Markus Jochim <joc...@dc.uni-due.de> wrote: >> Hello everybody, >> >> I just started with VHDL and I have three (probably simple) questions: >> >> Using Alteras Quartus 2 Tool I want to do some VHDL simulation: >> >> A simple example: >> >> ARCHITECTURE TEST OF TEST IS >> BEGIN >> x <= i after 20 ns; >> END TEST; >> >> Using the simulator that is integrated in Quartus 2 I generated a simple >> waveform where: >> >> i = ' 0 ' form 0 ns to 10 ns >> i = ' 1 ' for time > 10 ns >> >> When I switch to "Functional Simulation" timing is ignored (as >> expected). When I switch to "Timing Simulation" I get: >> >> x = '1' for time > 23 ns >> >> which obviously reflects the timing of the FPGA for which the design was >> synthesised by Quartus II. >> >> Now my questions are as follows: >> >> Question 1: How can I just perform a VHDL simulation that reflects the >> timing expressed by the statement "... after 20 ns"? >> >> Question 2: How can I instruct Quartus II to accept all valid VHDL-code >> and not only code that actually can be synthesised? I just want to >> simulate a VHDL model! >> >> Question 3: How can run simple test benches written in VHDL (like in the >> example attached below) and watch the resulting waveforms using Quartus >> II. ...snip.. > > To expand on Mike's answer: > > Question 1: Use a real simulator. > Question 2: You can't; Quartus is essentially a front end for a > synthesizer (Use a real simulator.) > Question 3: Use a real simulator. So if I understand you correctly, you are trying to say that he should use a real simulator? Hans www.ht-lab.com HT-Lab |
|
|
|
#5 |
|
Posts: n/a
|
That was my impression as well... I tried the ModelSim Web Edition as
recommended by Mike and everything works fine! Thanks for answering a Newbie-question and for being helpful with a simple and unambiguous answer Markus > > So if I understand you correctly, you are trying to say that he should use a > real simulator? > > Hans > www.ht-lab.com > > > Markus Jochim |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| vhdl code for bidirectional transceiver | qtr | General Help Related Topics | 0 | 07-05-2007 05:00 PM |
| Writing Register code in vhdl | amirster | Hardware | 2 | 06-11-2007 03:22 PM |
| vhdl code | amirster | Hardware | 0 | 05-10-2007 07:28 AM |
| Re: PROBLEM SOLVED General USB Printer setup question, and situation-specific question | Bum | A+ Certification | 0 | 01-15-2005 10:13 AM |
| Re: General USB Printer setup question, and situation-specific question | AG | A+ Certification | 0 | 01-13-2005 11:13 PM |