RENESAS ForgeFPGA ਸੌਫਟਵੇਅਰ ਸਿਮੂਲੇਸ਼ਨ
ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ
ਸਿਮੂਲੇਸ਼ਨ ਵੱਖ-ਵੱਖ ਸਮਿਆਂ 'ਤੇ ਡਿਜ਼ਾਈਨ ਲਈ ਵੱਖ-ਵੱਖ ਇਨਪੁਟ ਉਤੇਜਨਾ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੀ ਇੱਕ ਤਕਨੀਕ ਹੈ ਤਾਂ ਜੋ ਇਹ ਪਤਾ ਲਗਾਇਆ ਜਾ ਸਕੇ ਕਿ ਕੀ RTL ਕੋਡ ਇਰਾਦਾ ਤਰੀਕੇ ਨਾਲ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ। ਇਸਦੀ ਵਰਤੋਂ ਡਿਜ਼ਾਈਨ ਦੀ ਮਜ਼ਬੂਤੀ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਸਿਮੂਲੇਸ਼ਨ ਉਪਭੋਗਤਾ ਨੂੰ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ view ਡਿਜ਼ਾਇਨ ਵਿੱਚ ਡਿਜ਼ਾਇਨ ਦਾ ਵਰਣਨ ਕਿਵੇਂ ਹੈ ਇਹ ਸਮਝਣ ਲਈ ਸੰਬੰਧਿਤ ਸਿਗਨਲਾਂ ਦਾ ਸਮਾਂ ਚਿੱਤਰ file ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ।
ਟੈਸਟਬੈਂਚ ਕੋਡ ਦੇ ਟੁਕੜੇ ਹੁੰਦੇ ਹਨ ਜੋ ਸਿਮੂਲੇਸ਼ਨ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ। ਇੱਕ ਸਧਾਰਨ ਟੈਸਟਬੈਂਚ ਯੂਨਿਟ ਅੰਡਰ ਟੈਸਟ (UUT) ਨੂੰ ਸਥਾਪਿਤ ਕਰੇਗਾ ਅਤੇ ਇਨਪੁਟ ਨੂੰ ਚਲਾਏਗਾ। ਗੋ ਕੌਂਫਿਗਰ ਸੌਫਟਵੇਅਰ ਟੈਸਟਬੈਂਚ ਵਿੱਚ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਉਤੇਜਨਾ ਦੇ ਨਾਲ ਸਿਮੂਲੇਸ਼ਨ ਵੇਵਫਾਰਮ ਨੂੰ ਵੇਖਣ ਲਈ ਆਈਕਾਰਸ ਵੇਰੀਲੋਗ (ਆਈਵੇਰੀਲੋਗ) ਅਤੇ ਜੀਟੀਕੇਵੇਵ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।
ਇਹ ਦਸਤਾਵੇਜ਼ ਉਹਨਾਂ ਕਦਮਾਂ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ ਜੋ ਤੁਹਾਡੇ ਸਿਸਟਮ 'ਤੇ Icarus ਨੂੰ ਸਥਾਪਿਤ ਕਰਦੇ ਸਮੇਂ ਚੁੱਕੇ ਜਾਣੇ ਚਾਹੀਦੇ ਹਨ ਅਤੇ ਇੱਕ ਸਫਲ ਸਿਮੂਲੇਸ਼ਨ ਨੂੰ ਕਿਵੇਂ ਚਲਾਉਣਾ ਹੈ।
Icarus Verilog ਇੰਸਟਾਲ ਕਰਨਾ
a. ਤੋਂ Icarus Verilog (IVerilog) ਦਾ ਨਵੀਨਤਮ ਸੰਸਕਰਣ ਸਥਾਪਿਤ ਕਰੋ https://bleyer.org/icarus/
b. PATH ਵਿੱਚ IVerilog ਨੂੰ ਜੋੜਨਾ ਯਕੀਨੀ ਬਣਾਓ ਅਤੇ ਇਸਨੂੰ GTKWave ਇੰਸਟਾਲ ਕਰਨ ਦਿਓ (ਚਿੱਤਰ 1 ਦੇਖੋ)
c. ਗੋ ਕੌਂਫਿਗਰ ਸੌਫਟਵੇਅਰ ਖੋਲ੍ਹੋ ਅਤੇ ਫੋਰਜ ਵਰਕਸ਼ਾਪ ਖੋਲ੍ਹਣ ਲਈ ਭਾਗ ਚੁਣੋ: SLG47910(Rev BB) (ਚਿੱਤਰ 2 ਦੇਖੋ)।
d. ਸਿਖਰ 'ਤੇ ਟੂਲਬਾਰ ਦੇ ਮੱਧ ਵਿੱਚ FPGA ਸੰਪਾਦਕ 'ਤੇ ਕਲਿੱਕ ਕਰੋ ਜਾਂ ਉਪਭੋਗਤਾ ਵਿੰਡੋ ਦੇ ਮੱਧ ਵਿੱਚ FPGA ਕੋਰ ਢਾਂਚੇ 'ਤੇ ਡਬਲ-ਕਲਿਕ ਵੀ ਕਰ ਸਕਦਾ ਹੈ।
e. ਫੋਰਜ ਵਰਕਸ਼ਾਪ ਨਾਂ ਦੀ ਇੱਕ ਨਵੀਂ ਵਿੰਡੋ ਖੁੱਲ੍ਹਦੀ ਹੈ। ਸਿਖਰ 'ਤੇ ਮੀਨੂ ਟੂਲਬਾਰ ਵਿੱਚ, ਵਿਕਲਪ → ਸੈਟਿੰਗਾਂ 'ਤੇ ਕਲਿੱਕ ਕਰੋ। ਸੈਟਿੰਗਜ਼ ਡਾਇਲਾਗ ਬਾਕਸ ਵਿੱਚ, ਉਪਭੋਗਤਾ ਸੈਟਿੰਗਜ਼ ਟੈਬ ਦੇ ਅਧੀਨ ਟੂਲਸ 'ਤੇ ਜਾਓ। Icarus Verilog ਅਤੇ GTKWave ਦੋਵਾਂ ਲਈ “ਸਿਸਟਮ ਇਨਵਾਇਰਮੈਂਟ ਬਾਕਸ” ਦੀ ਵਰਤੋਂ ਨੂੰ ਅਣਚੁਣਿਆ ਕਰੋ। Iverilog ਅਤੇ GTKWave ਦਾ ਮਾਰਗ ਤੁਹਾਡੇ ਸਿਸਟਮ ਵਿੱਚ ਦਿੱਤੀ ਗਈ ਸਪੇਸ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ ਹੈ (ਚਿੱਤਰ 4 ਵੇਖੋ)।
ਤੁਸੀਂ ਟੈਸਟਬੈਂਚ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਤਿਆਰ ਹੋ ਅਤੇ ਉਪਰੋਕਤ ਕਦਮ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ ਕਿ ਗੋ ਕੌਂਫਿਗਰ ਸੌਫਟਵੇਅਰ 'ਤੇ ਟੈਸਟਬੈਂਚ ਦੀ ਨਕਲ ਕਰਦੇ ਸਮੇਂ GTKWave ਆਟੋਮੈਟਿਕ ਲਾਂਚ ਹੁੰਦਾ ਹੈ।
ਟੈਸਟਬੈਂਚ
ਕਿਸੇ ਵੀ ਪ੍ਰਣਾਲੀ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਲਾਗੂ ਕਰਨ ਲਈ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਕਦਮ ਡਿਜ਼ਾਇਨ ਅਤੇ ਇਸਦੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨਾ ਹੈ। ਹਾਰਡਵੇਅਰ ਨੂੰ ਲਾਗੂ ਕਰਨ ਤੋਂ ਬਾਅਦ ਇੱਕ ਗੁੰਝਲਦਾਰ ਸਿਸਟਮ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨਾ ਇੱਕ ਬੁੱਧੀਮਾਨ ਵਿਕਲਪ ਨਹੀਂ ਹੈ। ਇਹ ਪੈਸੇ, ਸਮੇਂ ਅਤੇ ਸਾਧਨਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਬੇਅਸਰ ਹੈ. ਇਸ ਲਈ, FPGA ਦੇ ਮਾਮਲੇ ਵਿੱਚ, ਇੱਕ ਟੈਸਟਬੈਂਚ ਦੀ ਵਰਤੋਂ ਵੇਰੀਲੌਗ ਸਰੋਤ ਕੋਡ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਮੰਨ ਲਓ ਕਿ ਸਾਡੇ ਕੋਲ ਇੱਕ ਇਨਪੁਟ ਹੈ ਜੋ ਕਿ 11 ਬਿੱਟਾਂ ਦਾ ਹੈ, ਅਤੇ ਅਸੀਂ ਸਾਰੇ ਸੰਭਾਵੀ ਇਨਪੁਟ ਮਿਸ਼ਰਨ ਮੁੱਲਾਂ ਭਾਵ (211) ਲਈ ਡਿਵਾਈਸ ਦੀ ਜਾਂਚ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਕਿਉਂਕਿ ਇਹ ਸੰਜੋਗਾਂ ਦੀ ਇੱਕ ਬਹੁਤ ਵੱਡੀ ਸੰਖਿਆ ਹੈ, ਇਸ ਨੂੰ ਹੱਥੀਂ ਟੈਸਟ ਕਰਨਾ ਅਸੰਭਵ ਹੈ। ਅਜਿਹੇ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਟੈਸਟਬੈਂਚ ਬਹੁਤ ਉਪਯੋਗੀ ਹੁੰਦੇ ਹਨ ਕਿਉਂਕਿ ਤੁਸੀਂ ਸਾਰੇ ਸੰਭਾਵੀ ਮੁੱਲਾਂ ਲਈ ਡਿਜ਼ਾਇਨ ਦੀ ਆਪਣੇ ਆਪ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸਲਈ, ਟੈਸਟ ਡਿਜ਼ਾਈਨ ਦੀ ਭਰੋਸੇਯੋਗਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ। ਵੇਰੀਲੌਗ ਟੈਸਟਬੈਂਚਾਂ ਦੀ ਵਰਤੋਂ ਬਿਨਾਂ ਕਿਸੇ ਭੌਤਿਕ ਹਾਰਡਵੇਅਰ ਡਿਵਾਈਸ ਦੀ ਲੋੜ ਦੇ ਡਿਜ਼ਾਈਨਾਂ ਦੀ ਨਕਲ ਕਰਨ ਅਤੇ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਟੈਸਟ ਦੇ ਅਧੀਨ ਇੱਕ ਡਿਜ਼ਾਇਨ, ਸੰਖੇਪ ਵਿੱਚ DUT, ਕਾਰਜਸ਼ੀਲਤਾ ਦਾ ਇੱਕ ਸੰਸਲੇਸ਼ਣਯੋਗ ਮੋਡੀਊਲ ਹੈ ਜਿਸਦੀ ਅਸੀਂ ਜਾਂਚ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਦੂਜੇ ਸ਼ਬਦਾਂ ਵਿਚ, ਇਹ ਸਰਕਟ ਡਿਜ਼ਾਈਨ ਹੈ ਜਿਸ ਦੀ ਅਸੀਂ ਜਾਂਚ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਅਸੀਂ ਵੇਰੀਲੌਗ ਵਿੱਚ ਤਿੰਨ ਮਾਡਲਿੰਗ ਸਟਾਈਲਾਂ ਵਿੱਚੋਂ ਇੱਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ DUT ਦਾ ਵਰਣਨ ਕਰ ਸਕਦੇ ਹਾਂ - ਗੇਟ-ਪੱਧਰ, ਡੇਟਾਫਲੋ, ਜਾਂ ਵਿਵਹਾਰਕ।
ਇੱਕ ਟੈਸਟਬੈਂਚ ਸੰਸਲੇਸ਼ਣਯੋਗ ਨਹੀਂ ਹੈ, ਇਸਲਈ ਇਹ ਸਿਰਫ ਸਿਮੂਲੇਸ਼ਨ ਉਦੇਸ਼ਾਂ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਉਪਭੋਗਤਾ ਨੂੰ ਟੈਸਟਬੈਂਚਾਂ ਨੂੰ ਲਿਖਣ ਲਈ ਵੇਰੀਲੌਗ ਰਚਨਾਵਾਂ ਦੀ ਪੂਰੀ ਸ਼੍ਰੇਣੀ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਕੀਵਰਡਸ ਜਿਵੇਂ ਕਿ "ਲਈ", "$ ਡਿਸਪਲੇ" ਅਤੇ "$ ਮਾਨੀਟਰ" ਆਦਿ। ਇੱਕ ਸਧਾਰਨ ਟੈਸਟਬੈਂਚ ਯੂਨਿਟ ਅੰਡਰ ਟੈਸਟ (UUT) ਜਾਂ ਡਿਵਾਈਸ ਅੰਡਰ ਟੈਸਟ (DUT) ਅਤੇ ਡ੍ਰਾਈਵ ਇਨਪੁਟਸ ਨੂੰ ਸਥਾਪਿਤ ਕਰੇਗਾ।
ਟੈਸਟਬੈਂਚ ਨੂੰ ਸਮਝਣਾ
ਟੈਸਟਬੈਂਚ ਵਿੱਚ ਟਾਈਮਸਕੇਲ ਪਰਿਭਾਸ਼ਾ
ਸਿਮੂਲੇਟ ਕਰਦੇ ਸਮੇਂ, ਸੌਫਟਵੇਅਰ ਨੂੰ ਇਹ ਜਾਣਨ ਦੀ ਜ਼ਰੂਰਤ ਹੁੰਦੀ ਹੈ ਕਿ ਸਮਾਂ ਕਿਵੇਂ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ. ਦੇਰੀ ਇਕਾਈ ਨੂੰ `ਟਾਈਮਸਕੇਲ ਡਾਇਰੈਕਟਿਵ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨਿਰਧਾਰਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ ਸਮਾਂ ਇਕਾਈ ਅਤੇ ਇਸ ਦੀ ਪਾਲਣਾ ਕਰਨ ਵਾਲੇ ਮੋਡੀਊਲਾਂ ਲਈ ਸ਼ੁੱਧਤਾ ਨੂੰ ਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ। `ਟਾਈਮਸਕੇਲ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਸਮੇਂ ਦੇ ਸੰਦਰਭ ਵਿੱਚ #1 ਦਾ ਕੀ ਅਰਥ ਹੈ। # ਦੀ ਵਰਤੋਂ ਟਾਈਮਸਕੇਲ ਵਿੱਚ ਨਿਰਧਾਰਤ ਸਮਾਂ ਯੂਨਿਟ ਦੇ ਅਨੁਸਾਰ ਸਿਸਟਮ ਵਿੱਚ ਪੇਸ਼ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਦੇਰੀ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਲਈ, #1 ਦਾ ਮਤਲਬ ਹੈ 1 ns ਦੇਰੀ ਜੇਕਰ ਸਮਾਂ_ਇਕਾਈ ns ਵਿੱਚ ਹੈ।
ਸੰਟੈਕਸ:
`ਟਾਈਮ ਸਕੇਲ / /
time_unit ਸਮੇਂ ਦੀ ਮਾਤਰਾ ਹੈ ਜੋ #1 ਦੀ ਦੇਰੀ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ। ਸਮਾਂ_ਸ਼ੁੱਧਤਾ ਅਧਾਰ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਸਮੇਂ ਦੀਆਂ ਇਕਾਈਆਂ ਦੇ ਸਾਪੇਖਕ ਕਿੰਨੇ ਦਸ਼ਮਲਵ ਅੰਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ। (ਚਿੱਤਰ 23 ਵਿੱਚ ਲਾਈਨ 5 ਦੇਖੋ)
ਅਸੀਂ ਇੱਕੋ ਡਿਜ਼ਾਇਨ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਸਮਾਂ ਯੂਨਿਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਟਾਈਮਸਕੇਲ ਨਿਰਮਾਣ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ। ਉਪਭੋਗਤਾ ਨੂੰ ਇਹ ਯਾਦ ਰੱਖਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਕਿ ਦੇਰੀ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸੰਸਲੇਸ਼ਣਯੋਗ ਨਹੀਂ ਹਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਹਾਰਡਵੇਅਰ ਤਰਕ ਵਿੱਚ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ। ਦੇਰੀ ਫੰਕਸ਼ਨ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਿਮੂਲੇਸ਼ਨ ਉਦੇਸ਼ਾਂ ਲਈ ਹਨ। $ਸਮਾਂ ਅਤੇ $ਅਸਲੀ ਸਮਾਂ ਸਿਸਟਮ ਫੰਕਸ਼ਨ ਮੌਜੂਦਾ ਸਮਾਂ ਵਾਪਸ ਕਰਦੇ ਹਨ ਅਤੇ ਡਿਫਾਲਟ ਰਿਪੋਰਟਿੰਗ ਫਾਰਮੈਟ ਨੂੰ ਕਿਸੇ ਹੋਰ ਸਿਸਟਮ ਟਾਸਕ $timeformat ਨਾਲ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ExampLe:
`ਟਾਈਮ ਸਕੇਲ 10us/100ns
`ਟਾਈਮ ਸਕੇਲ 1ns/1ps
#10 ਰੀਸੈਟ = 1; // ਸਿਗਨਲ ਨੂੰ 10 ns ਦੁਆਰਾ ਦੇਰੀ ਕਰਦਾ ਹੈ
#0.49 $display( "T = %0t ਸਮੇਂ #0.49", $realtime);
ਨਿਰਦਿਸ਼ਟ ਦੇਰੀ #0.49 ਹੈ ਜੋ ਕਿ ਅੱਧੇ ਯੂਨਿਟ ਸਮੇਂ ਤੋਂ ਘੱਟ ਹੈ। ਹਾਲਾਂਕਿ, ਸਮੇਂ ਦੀ ਸ਼ੁੱਧਤਾ 1ps ਹੋਣ ਲਈ ਨਿਸ਼ਚਿਤ ਕੀਤੀ ਗਈ ਹੈ ਅਤੇ ਇਸਲਈ ਸਿਮੂਲੇਟਰ 1ns ਤੋਂ ਛੋਟਾ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਇਸਨੂੰ ਦਿੱਤੇ ਗਏ ਦੇਰੀ ਸਟੇਟਮੈਂਟ ਅਤੇ ਉਪਜ 0ns ਨੂੰ ਗੋਲ ਕਰਨ ਲਈ ਬਣਾਉਂਦਾ ਹੈ। ਇਸ ਲਈ, ਇਹ ਬਿਆਨ ਕਿਸੇ ਵੀ ਦੇਰੀ ਪ੍ਰਦਾਨ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਹੈ।
ਸਿਮੂਲੇਸ਼ਨ ਲੌਗ:
T = 1 ਵਾਰ #0.49 'ਤੇ
ਮੋਡੀਊਲ ਘੋਸ਼ਣਾ
ਕਿਸੇ ਵੀ ਟੈਸਟਬੈਂਚ ਵਿੱਚ ਮੋਡੀਊਲ ਘੋਸ਼ਣਾ ਮੁੱਖ ਵੇਰੀਲੌਗ ਕੋਡ ਦੇ ਉਲਟ ਹੈ। ਇੱਕ ਟੈਸਟਬੈਂਚ ਵਿੱਚ, ਮੋਡੀਊਲ ਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਟਰਮੀਨਲ ਪੋਰਟ ਦੇ ਨਾਲ ਘੋਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। (ਚਿੱਤਰ 25 ਵਿੱਚ ਲਾਈਨ 5 ਦੇਖੋ)
ਸੰਟੈਕਸ:
ਮੋਡੀਊਲ ;
ਮੁੱਖ ਡਿਜ਼ਾਈਨ ਵਿੱਚ ਪਹਿਲਾਂ ਪਰਿਭਾਸ਼ਿਤ ਇਨਪੁਟ ਅਤੇ ਆਉਟਪੁੱਟ ਸਿਗਨਲਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਕੇ ਮੋਡਿਊਲ ਘੋਸ਼ਣਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ file.
ਅਸੀਂ ਸਿਮੂਲੇਸ਼ਨ ਦੌਰਾਨ ਸਿਗਨਲ ਚਲਾਉਣ ਅਤੇ ਨਿਗਰਾਨੀ ਕਰਨ ਲਈ ਦੋ ਸਿਗਨਲ ਕਿਸਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। reg ਡੇਟਾਟਾਈਪ ਮੁੱਲ ਨੂੰ ਉਦੋਂ ਤੱਕ ਰੱਖੇਗਾ ਜਦੋਂ ਤੱਕ ਇਸ ਨੂੰ ਨਵਾਂ ਮੁੱਲ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਸ ਡੇਟਾਟਾਈਪ ਨੂੰ ਸਿਰਫ਼ ਹਮੇਸ਼ਾ ਜਾਂ ਸ਼ੁਰੂਆਤੀ ਬਲਾਕ ਵਿੱਚ ਇੱਕ ਮੁੱਲ ਦਿੱਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਵਾਇਰ ਡੇਟਾਟਾਈਪ ਇੱਕ ਭੌਤਿਕ ਕੁਨੈਕਸ਼ਨ ਵਰਗਾ ਹੈ। ਇਹ ਉਹ ਮੁੱਲ ਰੱਖੇਗਾ ਜੋ ਪੋਰਟ, ਅਸਾਈਨ ਸਟੇਟਮੈਂਟ, ਜਾਂ ਰੈਗ ਦੁਆਰਾ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਡੇਟਾ ਕਿਸਮ ਸ਼ੁਰੂਆਤੀ ਜਾਂ ਹਮੇਸ਼ਾਂ ਬਲੌਕ ਵਿੱਚ ਨਹੀਂ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਇਸ ਭਾਗ ਵਿੱਚ ਕੋਈ ਵੀ ਪੈਰਾਮੀਟਰ ਅਤੇ ਪੂਰਨ ਅੰਕ ਘੋਸ਼ਣਾ ਵੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ExampLe:
Reg a,b; // ਐਚਡੀਐਲ ਕੋਡ ਵਿੱਚ ਇਨਪੁਟ ਨੂੰ ਟੈਸਟਬੈਂਚ ਵਿੱਚ ਰੈਗ ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ
ਤਾਰ y; // HDL ਵਿੱਚ ਆਉਟਪੁੱਟ ਸਿਗਨਲ ਨੂੰ ਟੈਸਟਬੈਂਚ ਵਿੱਚ ਤਾਰ ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ
DUT ਸਥਾਪਨਾ
ਟੈਸਟਬੈਂਚ ਦਾ ਉਦੇਸ਼ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨਾ ਹੈ ਕਿ ਕੀ ਸਾਡਾ DUT ਮੋਡੀਊਲ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ। ਇਸ ਲਈ, ਸਾਨੂੰ ਮੋਡੀਊਲ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਸਾਡੇ ਡਿਜ਼ਾਈਨ ਮੋਡੀਊਲ ਨੂੰ ਤੁਰੰਤ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੈ।
ਸੰਟੈਕਸ:
(. (ਸਿਗਨਲ1), . signal1>(signal2));
ExampLe:
ALU d0 (.a(a), // ALU ਵਿੱਚ ਸਿਗਨਲ "a" ਨੂੰ ALU_tb ਮੋਡੀਊਲ ਵਿੱਚ "a" ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ
.b(b), // ALU ਵਿੱਚ ਸਿਗਨਲ "b" ਨੂੰ ALU_tb ਮੋਡੀਊਲ ਵਿੱਚ "b" ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ
.c(c)) ;// ALU ਵਿੱਚ ਸਿਗਨਲ "c" ਨੂੰ ALU_tb ਮੋਡੀਊਲ ਵਿੱਚ "c" ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ
ਅਸੀਂ ਟੈਸਟ ਮੋਡੀਊਲ ਲਈ DUT ਮੋਡੀਊਲ ALU ਨੂੰ ਤਤਕਾਲ ਕੀਤਾ ਹੈ। ਉਦਾਹਰਣ ਦਾ ਨਾਮ (d0) ਉਪਭੋਗਤਾ ਦੀ ਪਸੰਦ ਹੈ। ਇੱਕ ਮਿਆਦ ਦੇ ਨਾਲ ਸਿਗਨਲ "." ਉਹਨਾਂ ਦੇ ਸਾਹਮਣੇ ALU ਮੋਡੀਊਲ ਦੇ ਅੰਦਰ ਸਿਗਨਲਾਂ ਦੇ ਨਾਮ ਹਨ, ਜਦੋਂ ਕਿ ਤਾਰ ਜਾਂ ਰੇਗ ਜਿਸ ਨਾਲ ਉਹ ਟੈਸਟ ਬੈਂਚ ਵਿੱਚ ਜੁੜਦੇ ਹਨ, ਬਰੈਕਟ () ਵਿੱਚ ਸਿਗਨਲ ਦੇ ਅੱਗੇ ਹੈ। ਹਰੇਕ ਪੋਰਟ ਕਨੈਕਸ਼ਨ ਨੂੰ ਇੱਕ ਵੱਖਰੀ ਲਾਈਨ ਵਿੱਚ ਕੋਡ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਜੋ ਕੋਈ ਵੀ ਸੰਕਲਨ ਗਲਤੀ ਸੁਨੇਹਾ ਸਹੀ ਢੰਗ ਨਾਲ ਲਾਈਨ ਨੰਬਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰੇ ਜਿੱਥੇ ਗਲਤੀ ਆਈ ਹੈ। ਕਿਉਂਕਿ ਇਹ ਕਨੈਕਸ਼ਨ ਨਾਮ ਦੁਆਰਾ ਬਣਾਏ ਗਏ ਹਨ, ਜਿਸ ਕ੍ਰਮ ਵਿੱਚ ਇਹ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ ਉਹ ਅਪ੍ਰਸੰਗਿਕ ਹੈ।
DUT ਇੰਸਟੈਂਟੇਸ਼ਨ ਉਹਨਾਂ ਮੈਡਿਊਲਾਂ ਲਈ ਵੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ ਜਿੱਥੇ ਟੈਸਟਬੈਂਚ ਮੋਡੀਊਲ ਦੇ ਵੱਖ-ਵੱਖ ਸਿਗਨਲ ਨਾਮ ਹਨ। ਸਿਗਨਲਾਂ ਦੀ ਸਹੀ ਮੈਪਿੰਗ ਉਹ ਹੈ ਜੋ ਤਤਕਾਲ ਕਰਨ ਵੇਲੇ ਮਹੱਤਵਪੂਰਨ ਹੈ।
Example:
ALU d0 (.a(A), // ALU ਵਿੱਚ ਸਿਗਨਲ "a" ਨੂੰ ALU_tb ਮੋਡੀਊਲ ਵਿੱਚ "A" ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ
.clk(ਘੜੀ), // ALU ਵਿੱਚ ਸਿਗਨਲ "clk" ਨੂੰ "ਘੜੀ" ALU_tb ਮੋਡੀਊਲ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ
.ਆਊਟ(ਆਊਟ)); // ALU ਵਿੱਚ ਸਿਗਨਲ "ਆਊਟ" ਨੂੰ ALU_tb ਮੋਡੀਊਲ ਵਿੱਚ "OUT" ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ
ਇੱਕ ਟੈਸਟਬੈਂਚ ਵਿੱਚ ਹਮੇਸ਼ਾਂ ਅਤੇ ਸ਼ੁਰੂਆਤੀ ਬਲਾਕ
ਵੇਰੀਲੋਗ ਵਿੱਚ ਦੋ ਕ੍ਰਮਵਾਰ ਬਲਾਕ ਹਨ, ਸ਼ੁਰੂਆਤੀ ਅਤੇ ਹਮੇਸ਼ਾ। ਇਹ ਇਹਨਾਂ ਬਲਾਕਾਂ ਵਿੱਚ ਹੈ ਜੋ ਅਸੀਂ ਉਤੇਜਨਾ ਨੂੰ ਲਾਗੂ ਕਰਦੇ ਹਾਂ.
ਸ਼ੁਰੂਆਤੀ ਬਲਾਕ
ਸ਼ੁਰੂਆਤੀ ਬਲਾਕ ਜੋ ਸਿਰਫ ਇੱਕ ਵਾਰ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਬਲਾਕ ਦੀ ਆਖਰੀ ਲਾਈਨ ਦੇ ਚੱਲਣ 'ਤੇ ਸਮਾਪਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਉਤੇਜਨਾ ਨੂੰ ਸ਼ੁਰੂਆਤੀ ਬਲਾਕ ਵਿੱਚ ਲਿਖਿਆ ਜਾਂਦਾ ਹੈ। (ਚਿੱਤਰ 54 ਵਿੱਚ ਲਾਈਨ 72-5 ਦੇਖੋ)
ਸੰਟੈਕਸ:
..
ਸ਼ੁਰੂਆਤੀ ਸ਼ੁਰੂਆਤ
$ਡੰਪfile();
$dumpvars();
..(ਉਤਸ਼ਾਹ ਦਰਜ ਕਰੋ)
ਅੰਤ
ਸ਼ੁਰੂਆਤੀ ਬਲਾਕ ਸਿਮੂਲੇਸ਼ਨ ਦੀ ਸ਼ੁਰੂਆਤ 'ਤੇ t = 0 'ਤੇ ਆਪਣਾ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ। ਸ਼ੁਰੂਆਤ ਅਤੇ ਅੰਤ ਦੇ ਵਿਚਕਾਰ ਪਹਿਲੀ ਲਾਈਨ ਨਾਲ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋਏ, ਹਰ ਲਾਈਨ ਉੱਪਰ ਤੋਂ ਹੇਠਾਂ ਤੱਕ ਚਲਦੀ ਹੈ ਜਦੋਂ ਤੱਕ ਦੇਰੀ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚ ਜਾਂਦੀ। ਜਦੋਂ ਦੇਰੀ ਪੂਰੀ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਇਸ ਬਲਾਕ ਦਾ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਉਦੋਂ ਤੱਕ ਇੰਤਜ਼ਾਰ ਕਰਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਦੇਰੀ ਦਾ ਸਮਾਂ (10-ਵਾਰ ਯੂਨਿਟ) ਲੰਘ ਨਹੀਂ ਜਾਂਦਾ ਅਤੇ ਫਿਰ ਦੁਬਾਰਾ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
ਉਪਭੋਗਤਾ ਸਾਰੇ ਸੰਜੋਗਾਂ ਨੂੰ ਹੱਥੀਂ ਦਾਖਲ ਕਰਨ ਦੀ ਬਜਾਏ ਇਸ ਸ਼ੁਰੂਆਤੀ ਬਲਾਕ ਦੇ ਅੰਦਰ ਲੂਪਸ (ਲਈ, ਜਦਕਿ, ਜੇ-ਹੋਰ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉਤੇਜਨਾ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ।
Example:
ਸ਼ੁਰੂਆਤੀ ਸ਼ੁਰੂਆਤ
A = 0; b = 0; // ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸ਼ੁਰੂ ਕਰੋ
#10 ਏ = 0; b = 1; // ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਟੀ = 10-ਯੂਨਿਟ ਸਮੇਂ 'ਤੇ ਹੈ
#10 ਏ = 1; b = 0; // ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਟੀ = 20-ਯੂਨਿਟ ਸਮੇਂ 'ਤੇ ਹੈ
ਅੰਤ
ਡੰਪ Files
ਧਿਆਨ ਵਿੱਚ ਰੱਖਣ ਵਾਲੀ ਇੱਕ ਹੋਰ ਗੱਲ ਹੈ $ ਦੀ ਘੋਸ਼ਣਾਡੰਪfiles ਅਤੇ $ਡੰਪਵਰ ਸ਼ੁਰੂਆਤੀ ਬਲਾਕ ਦੇ ਅੰਦਰ (ਚਿੱਤਰ 55 ਵਿੱਚ ਲਾਈਨ 56- 5 ਦੇਖੋ)। $ਡੰਪfile ਨੈੱਟ ਅਤੇ ਰਜਿਸਟਰਾਂ ਦੇ ਮੁੱਲਾਂ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਨੂੰ ਡੰਪ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ file ਜਿਸ ਨੂੰ ਇਸਦੀ ਦਲੀਲ ਵਜੋਂ ਨਾਮ ਦਿੱਤਾ ਗਿਆ ਹੈ।
ਸਾਬਕਾ ਲਈampLe:
$ਡੰਪfile(“alu_tb.vcd”);
ਏ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਨੂੰ ਡੰਪ ਕਰੇਗਾ file alu_tb.vcd ਨਾਮ ਦਿੱਤਾ ਗਿਆ। ਤਬਦੀਲੀਆਂ ਏ ਵਿੱਚ ਦਰਜ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ file VCD ਕਹਿੰਦੇ ਹਨ file ਜੋ ਕਿ ਮੁੱਲ ਤਬਦੀਲੀ ਡੰਪ ਲਈ ਖੜ੍ਹਾ ਹੈ. ਇੱਕ VCD (ਮੁੱਲ ਤਬਦੀਲੀ ਡੰਪ) ਮੁੱਲ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਬਾਰੇ ਸਾਰੀ ਜਾਣਕਾਰੀ ਸਟੋਰ ਕਰਦਾ ਹੈ। ਸਾਡੇ ਕੋਲ ਇੱਕ ਤੋਂ ਵੱਧ $ਡੰਪ ਨਹੀਂ ਹੋ ਸਕਦਾfile ਵੇਰੀਲੌਗ ਸਿਮੂਲੇਸ਼ਨ ਵਿੱਚ ਬਿਆਨ.
$ਡੰਪਵਰ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਕਿਹੜੇ ਵੇਰੀਏਬਲ ਡੰਪ ਕੀਤੇ ਜਾਣੇ ਹਨ (ਵਿੱਚ file $ਡੰਪ ਦੁਆਰਾ ਜ਼ਿਕਰ ਕੀਤਾ ਗਿਆ ਹੈfile). ਇਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਆਸਾਨ ਤਰੀਕਾ ਹੈ ਬਿਨਾਂ ਕਿਸੇ ਦਲੀਲ ਦੇ। $dumpvars ਦਾ ਆਮ ਸੰਟੈਕਸ ਹੈ
$ਡੰਪਵਰ ( <, >);
ਅਸੀਂ ਮੂਲ ਰੂਪ ਵਿੱਚ ਨਿਰਧਾਰਿਤ ਕਰ ਸਕਦੇ ਹਾਂ ਕਿ ਕਿਹੜੇ ਮੋਡੀਊਲ, ਅਤੇ ਮੈਡਿਊਲਾਂ ਵਿੱਚ ਕਿਹੜੇ ਵੇਰੀਏਬਲ ਡੰਪ ਕੀਤੇ ਜਾਣਗੇ। ਇਸਦੀ ਵਰਤੋਂ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਸਰਲ ਤਰੀਕਾ ਹੈ ਪੱਧਰ ਨੂੰ 0 ਅਤੇ ਮੋਡੀਊਲ ਨਾਮ ਨੂੰ ਚੋਟੀ ਦੇ ਮੋਡੀਊਲ (ਆਮ ਤੌਰ 'ਤੇ ਚੋਟੀ ਦੇ ਟੈਸਟਬੈਂਚ ਮੋਡੀਊਲ) ਦੇ ਰੂਪ ਵਿੱਚ ਸੈੱਟ ਕਰਨਾ।
$ਡੰਪਵਰ(0, alu_tb);
ਜਦੋਂ ਪੱਧਰ ਨੂੰ 0 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਸਿਰਫ਼ ਮੋਡੀਊਲ ਦਾ ਨਾਮ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਉਸ ਮੋਡੀਊਲ ਦੇ ਸਾਰੇ ਵੇਰੀਏਬਲਾਂ ਅਤੇ ਇਸ ਚੋਟੀ ਦੇ ਮੋਡੀਊਲ ਦੁਆਰਾ ਤਤਕਾਲ ਹੇਠਲੇ-ਪੱਧਰ ਦੇ ਸਾਰੇ ਮੋਡੀਊਲਾਂ ਵਿੱਚ ਸਾਰੇ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਡੰਪ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਕਿਸੇ ਵੀ ਮੋਡੀਊਲ ਨੂੰ ਇਸ ਸਿਖਰਲੇ ਮੋਡੀਊਲ ਦੁਆਰਾ ਤਤਕਾਲ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਇਸਦਾ ਵੇਰੀਏਬਲ ਕਵਰ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ। ਇੱਕ ਹੋਰ ਗੱਲ, $ ਦੀ ਘੋਸ਼ਣਾਡੰਪfile $dumpvars ਜਾਂ ਕਿਸੇ ਹੋਰ ਸਿਸਟਮ ਕੰਮਾਂ ਤੋਂ ਪਹਿਲਾਂ ਆਉਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਡੰਪ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ ਡੰਪ files ਨੂੰ ਉਤੇਜਕ ਇਨਪੁਟਸ ਤੋਂ ਪਹਿਲਾਂ ਘੋਸ਼ਿਤ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਨਹੀਂ ਤਾਂ ਇਹਨਾਂ ਡੰਪ ਵਿੱਚ ਕੋਈ ਮੁੱਲ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ files.
ਹਮੇਸ਼ਾ ਬਲੌਕ ਕਰੋ
ਸ਼ੁਰੂਆਤੀ ਸਟੇਟਮੈਂਟਾਂ ਦੇ ਉਲਟ, ਇੱਕ ਹਮੇਸ਼ਾ ਬਲਾਕ ਵਾਰ-ਵਾਰ ਐਗਜ਼ੀਕਿਊਟ ਕਰਦਾ ਹੈ, ਹਾਲਾਂਕਿ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਮੇਂ t = 0 'ਤੇ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਸਾਬਕਾ ਲਈample, ਘੜੀ ਸਿਗਨਲ ਫਲਿੱਪ-ਫਲੌਪ ਵਰਗੇ ਕ੍ਰਮਵਾਰ ਸਰਕਟਾਂ ਦੇ ਸੰਚਾਲਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। ਇਸ ਦੀ ਲਗਾਤਾਰ ਸਪਲਾਈ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। ਇਸ ਲਈ, ਅਸੀਂ ਇੱਕ ਟੈਸਟਬੈਂਚ ਵਿੱਚ ਘੜੀ ਦੇ ਸੰਚਾਲਨ ਲਈ ਕੋਡ ਇਸ ਤਰ੍ਹਾਂ ਲਿਖ ਸਕਦੇ ਹਾਂ (ਚਿੱਤਰ 52 ਵਿੱਚ ਲਾਈਨ 5 ਵੇਖੋ):
ਹਮੇਸ਼ਾ
#10 clk = ~ clk;
endmodule
ਉਪਰੋਕਤ ਸਟੇਟਮੈਂਟ t = 10 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ 0 ns ਤੋਂ ਬਾਅਦ ਚਲਾਈ ਜਾਂਦੀ ਹੈ। clk ਦਾ ਮੁੱਲ ਪਿਛਲੇ ਮੁੱਲ ਤੋਂ 10 ns ਤੋਂ ਬਾਅਦ ਉਲਟਾ ਹੋ ਜਾਵੇਗਾ। ਇਸ ਤਰ੍ਹਾਂ, 20 ns ਪਲਸ ਚੌੜਾਈ ਦਾ ਇੱਕ ਘੜੀ ਸਿਗਨਲ ਤਿਆਰ ਕਰਨਾ. ਇਸ ਲਈ, ਇਹ ਕਥਨ 50 MHz ਦੀ ਬਾਰੰਬਾਰਤਾ ਦਾ ਸਿਗਨਲ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਨੋਟ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ, ਸਿਗਨਲ ਦੀ ਸ਼ੁਰੂਆਤ ਹਮੇਸ਼ਾ ਬਲਾਕ ਤੋਂ ਪਹਿਲਾਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ. ਜੇਕਰ ਅਸੀਂ ਸ਼ੁਰੂਆਤੀ ਭਾਗ ਨਹੀਂ ਕਰਦੇ ਹਾਂ, ਤਾਂ clk ਸਿਗਨਲ t – 0 ਤੋਂ x ਹੋਵੇਗਾ, ਅਤੇ 10 ns ਤੋਂ ਬਾਅਦ, ਇਹ ਦੂਜੇ x ਵਿੱਚ ਉਲਟ ਜਾਵੇਗਾ।
ਸਵੈ-ਜਾਂਚ ਟੈਸਟਬੈਂਚ
ਇੱਕ ਸਵੈ-ਚੈਕਿੰਗ ਟੈਸਟਬੈਂਚ ਵਿੱਚ ਮੌਜੂਦਾ ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਇੱਕ ਬਿਆਨ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ।
- $ਡਿਸਪਲੇ ਸਿਸਟਮ ਟਾਸਕ ਮੁੱਖ ਤੌਰ 'ਤੇ ਸਿਮੂਲੇਸ਼ਨ ਦੇ ਪ੍ਰਵਾਹ ਨੂੰ ਟਰੈਕ ਕਰਨ ਲਈ ਡੀਬੱਗ ਸੁਨੇਹਿਆਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ
ਸ਼ੁਰੂਆਤੀ ਸ਼ੁਰੂਆਤ
A = 0 ; b = 0 ; c = 0; #10; // ਇੰਪੁੱਟ ਲਾਗੂ ਕਰੋ, ਉਡੀਕ ਕਰੋ
ਜੇਕਰ(y! == 1) ਸ਼ੁਰੂ ਕਰੋ
$display ("000 ਅਸਫਲ"); //ਚੈੱਕ
c = 1; #10; //ਇਨਪੁਟ ਲਾਗੂ ਕਰੋ, ਉਡੀਕ ਕਰੋ
ਅੰਤ
ਹੋਰ ਜੇਕਰ ( y ! == 0) ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ
$display("001 ਅਸਫਲ") // ਚੈੱਕ
b = 1; c = 0; #10; ਅੰਤ
ਹੋਰ ਜੇ(y!==0)
$display ("010 ਅਸਫਲ"); //ਚੈੱਕ
ਅੰਤ
endmodule
$ਡਿਸਪਲੇ ਵੇਰੀਏਬਲ, ਸਤਰ, ਜਾਂ ਸਮੀਕਰਨ ਦੇ ਮੁੱਲ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਪਰੋਕਤ ਤੋਂ ਸਾਬਕਾample, ਜਦੋਂ ਵੀ ਕੋਈ if-else ਲੂਪ ਸੰਤੁਸ਼ਟ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸਿਮੂਲੇਟਰ ਲੌਗ ਆਪਣੇ ਅਨੁਸਾਰੀ $ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੇਗਾਡਿਸਪਲੇ ਬਿਆਨ. ਸਤਰ ਦੇ ਅੰਤ ਵਿੱਚ ਮੂਲ ਰੂਪ ਵਿੱਚ ਇੱਕ ਨਵੀਂ ਲਾਈਨ ਹੁੰਦੀ ਹੈ।
$ਡਿਸਪਲੇ ("ਸਮਾਂ = %t , A = %b, B = %b, C = % b", $ਸਮਾਂ, ਏ, ਬੀ, ਸੀ);
ਹਵਾਲੇ ਵਿੱਚ ਜ਼ਿਕਰ ਕੀਤੇ ਅੱਖਰ ਜਿਵੇਂ ਕਿ ਉਹ ਹਨ, ਛਾਪੇ ਜਾਣਗੇ. % ਦੇ ਨਾਲ ਅੱਖਰ ਸਤਰ ਫਾਰਮੈਟ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਅਸੀਂ ਬਾਈਨਰੀ ਡੇਟਾ ਨੂੰ ਦਰਸਾਉਣ ਲਈ %b ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। ਅਸੀਂ ਕ੍ਰਮਵਾਰ ਦਸ਼ਮਲਵ, ਹੈਕਸਾਡੈਸੀਮਲ ਅਤੇ ਔਕਟਲ ਨੂੰ ਦਰਸਾਉਣ ਲਈ %d, %h, %o ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ। %g ਅਸਲ ਸੰਖਿਆਵਾਂ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹਨਾਂ ਨੂੰ ਜ਼ਿਕਰ ਕੀਤੇ ਕ੍ਰਮ ਵਿੱਚ ਹਵਾਲੇ ਤੋਂ ਬਾਹਰ ਦੇ ਮੁੱਲਾਂ ਨਾਲ ਬਦਲਿਆ ਜਾਵੇਗਾ। ਸਾਬਕਾ ਲਈample, ਉਪਰੋਕਤ ਕਥਨ ਸਿਮੂਲੇਸ਼ਨ ਲੌਗ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤਾ ਜਾਵੇਗਾ: ਸਮਾਂ = 20, A = 0, B =1, C = 0
ਟੇਬਲ 1. ਵੇਰੀਲੌਗ ਟੇਬਲ ਫਾਰਮੈਟ
ਦਲੀਲ | ਵਰਣਨ |
%h, %H | ਹੈਕਸਾਡੈਸੀਮਲ ਫਾਰਮੈਟ ਵਿੱਚ ਡਿਸਪਲੇ ਕਰੋ |
%d, %D | ਦਸ਼ਮਲਵ ਰੂਪ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ |
%b, %B | ਬਾਈਨਰੀ ਫਾਰਮੈਟ ਵਿੱਚ ਡਿਸਪਲੇ ਕਰੋ |
%m, %M | ਲੜੀਵਾਰ ਨਾਮ ਦਿਖਾਓ |
%s, %S | ਸਤਰ ਦੇ ਰੂਪ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ |
%t, %T | ਸਮਾਂ ਫਾਰਮੈਟ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ |
%f, %F | ਦਸ਼ਮਲਵ ਫਾਰਮੈਟ ਵਿੱਚ 'ਰੀਅਲ' ਡਿਸਪਲੇ ਕਰੋ |
%e, %E | ਇੱਕ ਘਾਤਕ ਫਾਰਮੈਟ ਵਿੱਚ 'ਰੀਅਲ' ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ |
$ਡਿਸਪਲੇ ਮੁੱਖ ਤੌਰ 'ਤੇ ਡੇਟਾ ਜਾਂ ਵੇਰੀਏਬਲ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਇਹ ਉਸ ਸਮੇਂ ਦੇ ਉਸੇ ਸਮੇਂ ਹੁੰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ C ਵਿੱਚ printf। ਸਾਨੂੰ $ ਦਾ ਜ਼ਿਕਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।ਡਿਸਪਲੇ ਸਾਨੂੰ ਜੋ ਵੀ ਟੈਕਸਟ ਕਰਨਾ ਹੈ view ਸਿਮੂਲੇਸ਼ਨ ਲੌਗ ਵਿੱਚ.
- $ਸਮਾਂ
$ਸਮਾਂ ਇੱਕ ਸਿਸਟਮ ਕਾਰਜ ਹੈ ਜੋ ਸਿਮੂਲੇਸ਼ਨ ਦਾ ਮੌਜੂਦਾ ਸਮਾਂ ਵਾਪਸ ਕਰੇਗਾ।
- $ਮਾਨੀਟਰ
$ਮਾਨੀਟਰ ਡੇਟਾ ਜਾਂ ਵੇਰੀਏਬਲ ਦੀ ਨਿਗਰਾਨੀ ਕਰੇਗਾ ਜਿਸ ਲਈ ਇਹ ਲਿਖਿਆ ਗਿਆ ਹੈ ਅਤੇ ਜਦੋਂ ਵੀ ਵੇਰੀਏਬਲ ਬਦਲਦਾ ਹੈ, ਇਹ ਪ੍ਰਿੰਟ ਕਰੇਗਾ
ਬਦਲਿਆ ਮੁੱਲ. ਇਹ ਹਰ ਵਾਰ ਇਸਦੀ ਕੋਈ ਵੀ ਆਰਗੂਮੈਂਟ ਮਿਲਣ ਤੋਂ ਬਾਅਦ $display ਨੂੰ ਕਾਲ ਕਰਨ ਦੇ ਸਮਾਨ ਪ੍ਰਭਾਵ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ
ਅੱਪਡੇਟ ਕੀਤਾ। $ਮਾਨੀਟਰ ਇੱਕ ਕੰਮ ਦੀ ਤਰ੍ਹਾਂ ਹੈ ਜੋ ਮੁੱਖ ਥਰਿੱਡ ਦੇ ਪਿਛੋਕੜ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਪੈਦਾ ਕੀਤਾ ਗਿਆ ਹੈ ਜੋ ਮਾਨੀਟਰ ਕਰਦਾ ਹੈ ਅਤੇ
ਇਸ ਦੇ ਆਰਗੂਮੈਂਟ ਵੇਰੀਏਬਲਾਂ ਦੇ ਮੁੱਲ ਵਿੱਚ ਬਦਲਾਅ ਦਿਖਾਉਂਦਾ ਹੈ। $ਮਾਨੀਟਰ $ ਦੇ ਸਮਾਨ ਸੰਟੈਕਸ ਹੈਡਿਸਪਲੇ.
$ਮਾਨੀਟਰ(" ਸਮਾਂ = %t, A = %b, B = %b, C = % b", $ਸਮਾਂ, ਏ, ਬੀ, ਸੀ);
ਚਿੱਤਰ 7 ਤੋਂ ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਟੈਸਟਬੈਂਚ ਦਾ ਸਵੈ-ਮੁਲਾਂਕਣ ਕਰਨ ਲਈ ਕੋਡ ਦੀਆਂ ਨਵੀਆਂ ਲਾਈਨਾਂ ਜੋੜੀਆਂ ਗਈਆਂ ਹਨ। $ ਦੀ ਪਲੇਸਮੈਂਟਡਿਸਪਲੇ ਅਤੇ $ਮਾਨੀਟਰ ਟੈਸਟਬੈਂਚ ਦੇ ਵੱਖ-ਵੱਖ ਭਾਗਾਂ ਵਿੱਚ ਬਿਆਨ ਵੱਖ-ਵੱਖ ਨਤੀਜੇ ਦੇਣਗੇ (ਚਿੱਤਰ 8 ਦੇਖੋ)। $ਸਮਾਂ ਇਹਨਾਂ ਕਥਨਾਂ ਵਿੱਚ ਜ਼ਿਕਰ ਕੀਤਾ ਗਿਆ ਹੈ ਜਿਸ ਸਮੇਂ ਲਈ ਮੁੱਲ ਛਾਪਿਆ ਜਾ ਰਿਹਾ ਹੈ। ਉਸੇ ਸਮੇਂ ਯੂਨਿਟ ਕਹੋ 170000, ਅਸੀਂ ਦੇਖ ਸਕਦੇ ਹਾਂ ਕਿ $ ਦੇ ਕਾਰਨ A ਅਤੇ B ਦੇ ਮੁੱਲ ਵਿੱਚ ਕਿੰਨਾ ਅੰਤਰ ਹੈ।ਡਿਸਪਲੇ ਅਤੇ $ਮਾਨੀਟਰ ਬਿਆਨ.
GTKWave ਸਾਫਟਵੇਅਰ
GTKWave ਇੱਕ ਪੂਰੀ ਤਰ੍ਹਾਂ ਫੀਚਰਡ GTK+ ਵੇਵ ਹੈ viewUnix, Win32, ਅਤੇ Mac OSX ਲਈ er ਜੋ LXT, LXT2, VZT, FST, ਅਤੇ GHW ਪੜ੍ਹਦਾ ਹੈ files ਦੇ ਨਾਲ ਨਾਲ ਮਿਆਰੀ VCD/EVCD files ਅਤੇ ਉਹਨਾਂ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ viewing. ਇਸ ਦੇ ਅਧਿਕਾਰੀ webਸਾਈਟ 'ਤੇ ਹੈ http://gtkwave.sourceforge.net/ . GTKWave ਦੀ ਸਿਫ਼ਾਰਿਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ viewIcarus Verilog ਸਿਮੂਲੇਸ਼ਨ ਟੂਲ ਦੁਆਰਾ er.
ਇੱਕ ਵਾਰ ਜਦੋਂ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਡਿਜ਼ਾਈਨ ਦੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਸਫਲਤਾਪੂਰਵਕ ਇੱਕ ਟੈਸਟਬੈਂਚ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਉਪਭੋਗਤਾ ਹੁਣ GTKWave ਸਾਫਟਵੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ view ਤਰੰਗ ਰੂਪ.
ਨੂੰ GTKWave ਸਾਫਟਵੇਅਰ ਲਾਂਚ ਕਰਨ ਲਈ view ਵੇਵਫਾਰਮ, ਉਪਭੋਗਤਾ ਨੂੰ ਟੂਲਬਾਰ ਦੇ ਸਿਖਰ 'ਤੇ ਜਾਂ ਮੁੱਖ ਮੀਨੂ ਟੂਲਸ→ ਸਿਮੂਲੇਸ਼ਨ → ਸਿਮੂਲੇਟ ਟੈਸਟਬੈਂਚ ਤੋਂ ਸਿਮੂਲੇਟ ਟੈਸਟਬੈਂਚ ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਜੇਕਰ ਕੋਈ ਸੰਟੈਕਸ ਗਲਤੀ ਨਹੀਂ ਹੈ ਤਾਂ ਡਿਜ਼ਾਈਨ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹੋਏ, GTKWave ਨੂੰ ਆਪਣੇ ਆਪ ਲਾਂਚ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਜਾਂ ਟੈਸਟਬੈਂਚ ਵਿੱਚ ਉਤਸਾਹਿਤ ਦੇ ਨਤੀਜੇ ਵਿੰਡੋ ਦੇ ਲਾਗਰ ਭਾਗ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤੇ ਜਾਣਗੇ।
GTKWave ਸਾਫਟਵੇਅਰ .vcd ਫਾਰਮੈਟ ਡੰਪ ਨੂੰ ਖੋਲ੍ਹਦਾ ਹੈfile ਆਪਣੇ ਆਪ. GTKWave ਵਿੰਡੋ ਵੇਵਫਾਰਮ ਨੂੰ ਨਹੀਂ ਦਿਖਾਉਂਦਾ ਜਦੋਂ ਇਹ ਖੁੱਲ੍ਹਦਾ ਹੈ। ਇਹ ਉਪਭੋਗਤਾ ਨੂੰ ਇਹ ਚੁਣਨ ਦਾ ਮੌਕਾ ਦਿੰਦਾ ਹੈ ਕਿ ਉਹ ਕਿਹੜੇ ਸਿਗਨਲ ਚਾਹੁੰਦਾ ਹੈ view ਅਤੇ ਨਿਰੀਖਣ. ਸਿਗਨਲ ਦੀ ਚੋਣ ਕਰਨ ਲਈ, ਉਪਭੋਗਤਾ ਨੂੰ ਡਿਸਪਲੇ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਉਪਭੋਗਤਾ ਨੂੰ SST ਟੈਬ ਦੇ ਹੇਠਾਂ ਵਿੰਡੋ ਦੇ ਖੱਬੇ ਪਾਸੇ ਉਹਨਾਂ ਦੇ ਮੋਡੀਊਲ/ਉਦਾਹਰਨ ਦੇ ਨਾਮ 'ਤੇ ਕਲਿੱਕ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਹਰੇਕ ਉਦਾਹਰਨ ਦੇ + 'ਤੇ ਕਲਿੱਕ ਕਰਨ ਨਾਲ, ਤੁਸੀਂ ਹੇਠਲੇ ਭਾਗ ਵਿੱਚ ਸੰਕੇਤਾਂ ਨੂੰ ਦੇਖ ਸਕਦੇ ਹੋ ਜੋ ਉਸ ਉਦਾਹਰਣ ਨਾਲ ਸੰਬੰਧਿਤ ਹਨ। ਫਿਰ ਤੁਸੀਂ ਲੋੜੀਂਦੇ ਸਿਗਨਲ ਨੂੰ ਖਿੱਚ ਅਤੇ ਛੱਡ ਸਕਦੇ ਹੋ ਜਾਂ ਸਿਗਨਲ ਵਿੰਡੋ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਉਹਨਾਂ 'ਤੇ ਡਬਲ-ਕਲਿੱਕ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ ਸਾਰੇ (CTRL + A) ਨੂੰ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਸਿਗਨਲ ਵਿੰਡੋ ਵਿੱਚ ਪਾ ਸਕਦੇ ਹੋ (ਚਿੱਤਰ 9 ਦੇਖੋ)।
ਸਿਗਨਲ ਹੁਣ ਸਿਗਨਲ ਵਿੰਡੋ ਵਿੱਚ ਜੋੜੇ ਗਏ ਹਨ ਪਰ ਇਸਦਾ ਸਿਮੂਲੇਟ ਹੋਣਾ ਬਾਕੀ ਹੈ। ਸਿਗਨਲ ਵਿੰਡੋ ਵਿੱਚ ਲੋੜੀਂਦੇ ਸਿਗਨਲ ਜੋੜਨ ਤੋਂ ਬਾਅਦ, 'ਤੇ ਕਲਿੱਕ ਕਰੋ ਸਿਗਨਲਾਂ ਨੂੰ ਵਿੰਡੋ ਦੀ ਮੌਜੂਦਾ ਚੌੜਾਈ ਵਿੱਚ ਫਿੱਟ ਕਰਨ ਲਈ ਅਤੇ ਫਿਰ ਰੀਲੋਡ ਤੋਂ ਸਿਗਨਲਾਂ ਨੂੰ ਰੀਲੋਡ ਕਰੋ
ਟੂਲਬਾਰ 'ਤੇ ਮੌਜੂਦ ਚਿੰਨ੍ਹ। ਤੁਸੀਂ ਹੁਣ ਸਿਗਨਲਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਅਨੁਸਾਰੀ ਮੁੱਲਾਂ ਨਾਲ ਦੇਖ ਸਕਦੇ ਹੋ।
ਸਿਗਨਲ ਮੁੱਲ
ਮੂਲ ਰੂਪ ਵਿੱਚ, ਸਿਗਨਲਾਂ ਦੇ ਮੁੱਲ ਹੈਕਸਾਡੈਸੀਮਲ ਫਾਰਮੈਟ ਵਿੱਚ ਹੁੰਦੇ ਹਨ ਅਤੇ ਸਾਰੀਆਂ ਤਰੰਗਾਂ ਹਰੇ ਰੰਗ ਦੀਆਂ ਹੁੰਦੀਆਂ ਹਨ (ਜੇਕਰ ਸਹੀ ਢੰਗ ਨਾਲ ਚੱਲਦੀਆਂ ਹਨ)।
ਉਪਭੋਗਤਾ ਸਿਗਨਲ 'ਤੇ ਸੱਜਾ-ਕਲਿੱਕ ਕਰਕੇ ਅਤੇ ਡੇਟਾ ਫਾਰਮੈਟ ਜਾਂ ਕਲਰ ਫਾਰਮੈਟ ਦੀ ਚੋਣ ਕਰਕੇ ਇਹਨਾਂ ਸਿਗਨਲ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਬਦਲ ਸਕਦਾ ਹੈ। ਉਪਭੋਗਤਾ ਸਿਗਨਲਾਂ ਦੇ ਸਮੂਹ ਦੇ ਵਿਚਕਾਰ ਭਾਗ ਬਣਾਉਣ ਲਈ ਇੱਕ ਖਾਲੀ ਸਿਗਨਲ ਵੀ ਪਾ ਸਕਦਾ ਹੈ। ਜਦੋਂ ਤੁਹਾਡੇ ਕੋਲ ਲੋੜੀਂਦਾ ਆਪਟੀਕਲ ਨਤੀਜਾ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਜਾ ਕੇ ਆਪਣੀਆਂ ਸੰਰਚਨਾਵਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰ ਸਕਦੇ ਹੋ File → ਸੇਵ ਲਿਖੋ File.
GTKWave ਟੂਲਬਾਰ
ਟੂਲਬਾਰ (ਚਿੱਤਰ 10 ਵੇਖੋ) ਉਪਭੋਗਤਾ ਨੂੰ ਸਿਗਨਲ ਲਈ ਬੁਨਿਆਦੀ ਫੰਕਸ਼ਨ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਆਉ ਟੂਲਬਾਰ ਉੱਤੇ ਖੱਬੇ ਤੋਂ ਸੱਜੇ ਹਰੇਕ ਵਿਕਲਪ ਦੀ ਚਰਚਾ ਕਰੀਏ।
- ਮੀਨੂ ਵਿਕਲਪ: ਇਸ ਵਿਕਲਪ ਦੇ ਤਹਿਤ ਅਸੀਂ ਕਰ ਸਕਦੇ ਹਾਂ view ਸੌਫਟਵੇਅਰ ਦੀਆਂ ਸਾਰੀਆਂ ਵੱਖ-ਵੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਜੋ ਸੌਫਟਵੇਅਰ ਦੇ ਨਾਲ ਆਲੇ-ਦੁਆਲੇ ਖੇਡਣ ਲਈ ਵਰਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਮੀਨੂ ਵਿਕਲਪ ਦੇ ਅਧੀਨ ਵੇਰਵੇ ਇਸ ਉਪਭੋਗਤਾ ਗਾਈਡ ਦੇ ਸੈਕਸ਼ਨ 8 ਦੇ ਅਧੀਨ ਆਉਂਦੇ ਹਨ।
- ਟਰੇਸ ਕੱਟੋ: ਇਹ ਸਿਗਨਲ ਵਿੰਡੋ ਤੋਂ ਚੁਣੇ ਸਿਗਨਲ ਨੂੰ ਮਿਟਾਉਣ/ਕਟਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ
- ਟਰੇਸ ਕਾਪੀ ਕਰੋ: ਇਹ ਸਿਗਨਲ ਵਿੰਡੋ ਤੋਂ ਚੁਣੇ ਗਏ ਸਿਗਨਲ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ
- ਟਰੇਸ ਪੇਸਟ ਕਰੋ: ਕਾਪੀ ਕੀਤੇ/ਕੱਟ ਟਰੇਸ ਨੂੰ ਸਿਗਨਲ ਵਿੰਡੋ ਵਿੱਚ ਕਿਸੇ ਵੱਖਰੇ ਸਥਾਨ 'ਤੇ ਪੇਸਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ
- ਜ਼ੂਮ ਫਿੱਟ: ਇਹ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਚੁਣੀ ਗਈ ਵਿੰਡੋ ਦੇ ਆਕਾਰ ਦੇ ਅਨੁਸਾਰ ਸਿਗਨਲਾਂ ਨੂੰ ਫਿੱਟ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ
- ਜ਼ੂਮ ਇਨ ਕਰੋ: ਇਹ ਸਿਗਨਲ ਵਿੰਡੋ ਨੂੰ ਜ਼ੂਮ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ
- ਜ਼ੂਮ ਆਉਟ ਕਰੋ: ਇਹ ਸਿਗਨਲ ਵਿੰਡੋ ਨੂੰ ਜ਼ੂਮ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ
- ਜ਼ੂਮ ਅਨਡੂ ਕਰੋ: ਇਹ ਸਿਗਨਲ ਵਿੰਡੋ 'ਤੇ ਜ਼ੂਮ ਇਨ/ਆਊਟ ਨੂੰ ਅਨਡੂ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ
- ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਜ਼ੂਮ ਕਰੋ: ਇਹ ਸਿਗਨਲ ਵਿੰਡੋ ਨੂੰ ਜ਼ੂਮ ਕਰੇਗਾ, ਸਿਗਨਲਾਂ ਦੇ ਸ਼ੁਰੂਆਤੀ ਸਮੇਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੇਗਾ।
- ਅੰਤ ਤੱਕ ਜ਼ੂਮ ਕਰੋ: ਇਹ ਸਿਗਨਲ ਦੇ ਅੰਤ ਦੇ ਸਮੇਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਵਾਲੀ ਸਿਗਨਲ ਵਿੰਡੋ ਨੂੰ ਜ਼ੂਮ ਕਰੇਗਾ
- ਪਿਛਲਾ ਕਿਨਾਰਾ ਲੱਭੋ: ਇਹ ਪਿਛਲੇ ਕਿਨਾਰੇ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹੋਏ ਮਾਰਕਰ ਨੂੰ ਖੱਬੇ ਪਾਸੇ ਸ਼ਿਫਟ ਕਰਦਾ ਹੈ
- ਅਗਲਾ ਕਿਨਾਰਾ ਲੱਭੋ: ਇਹ ਅਗਲੇ ਕਿਨਾਰੇ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹੋਏ ਮਾਰਕਰ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਸ਼ਿਫਟ ਕਰਦਾ ਹੈ
- ਹੇਠਲੇ/ਉਪਰਲੇ ਬਾਂਡ ਨੂੰ ਸਕ੍ਰੋਲ ਕਰੋ: ਇਸਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਸੀਂ ਸਮਾਂ ਸੀਮਾ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਹਾਂ ਜਿਸ ਵਿੱਚ ਉਪਭੋਗਤਾ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਸਾਬਕਾ ਲਈample, ਅਸੀਂ ਸਮਾਂ ਸੀਮਾ ਨੂੰ 0 ਸਕਿੰਟ ਤੋਂ 500 ns ਤੱਕ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹਾਂ, ਇਹ ਸਿਰਫ ਉਸ ਮਿਆਦ ਦੇ ਅਧੀਨ ਸਿਗਨਲਾਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੇਗਾ।
- ਰੀਲੋਡ ਕਰੋ: ਜਦੋਂ ਵੀ ਪ੍ਰਦਰਸ਼ਿਤ ਸਿਗਨਲ ਵਿੱਚ ਕੋਈ ਤਬਦੀਲੀ ਹੁੰਦੀ ਹੈ ਤਾਂ ਰੀਲੋਡ ਨੂੰ ਦਬਾਇਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਨਵੇਂ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਅਨੁਸਾਰ ਸਿਗਨਲ ਨੂੰ ਰੀਲੋਡ ਅਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੇਗਾ. ਸਾਬਕਾ ਲਈample, ਸਿਗਨਲ ਦੇ ਟਾਈਮ ਫ੍ਰੇਮ ਨੂੰ ਬਦਲਣ ਤੋਂ ਬਾਅਦ, ਸਾਨੂੰ ਨਵੇਂ ਸੈੱਟ ਟਾਈਮ ਫ੍ਰੇਮ ਵਿੱਚ ਸਿਗਨਲ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਸਿਗਨਲ ਨੂੰ ਮੁੜ ਲੋਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।
ਮੀਨੂ ਵਿਕਲਪ
GTKWave ਸੌਫਟਵੇਅਰ ਦੇ ਖੱਬੇ ਉੱਪਰਲੇ ਕੋਨੇ ਤੋਂ, ਉਪਭੋਗਤਾ ਤਿੰਨ ਲੰਬਕਾਰੀ ਲਾਈਨਾਂ (ਚਿੱਤਰ 11 ਵੇਖੋ) 'ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਮੀਨੂ ਵਿਕਲਪਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦਾ ਹੈ। ਉਪਭੋਗਤਾ ਮੇਨੂ ਵਿਕਲਪਾਂ ਦੇ ਅਧੀਨ ਹੇਠਾਂ ਦਿੱਤੇ ਵਿਕਲਪਾਂ ਨੂੰ ਲੱਭ ਸਕਦਾ ਹੈ:
File
ਦ File ਸਬਮੇਨੂ ਵਿੱਚ ਪਹੁੰਚ ਨਾਲ ਸਬੰਧਤ ਵੱਖ-ਵੱਖ ਆਈਟਮਾਂ ਸ਼ਾਮਲ ਹਨ files, ਆਯਾਤ-ਨਿਰਯਾਤ VCD files, ਛਪਾਈ, ਅਤੇ ਪੜ੍ਹਨਾ/ਲਿਖਣਾ files ਅਤੇ ਬਾਹਰ ਆ ਰਿਹਾ ਹੈ।
ਸੰਪਾਦਿਤ ਕਰੋ
ਸੰਪਾਦਨ ਸਬਮੇਨੂ ਦੀ ਵਰਤੋਂ ਵੱਖ-ਵੱਖ ਉਪਯੋਗਤਾ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਿਵੇਂ ਕਿ ਵੇਵ ਸਬ-ਵਿੰਡੋ ਵਿੱਚ ਮੁੱਲਾਂ ਦੀ ਡਾਟਾ ਪ੍ਰਤੀਨਿਧਤਾ ਨੂੰ ਬਦਲਣਾ। ਐਡਿਟ ਸਬਮੇਨੂ ਦੇ ਅਧੀਨ ਵਿਕਲਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਉਪਭੋਗਤਾ ਸਿਗਨਲਾਂ ਦੇ ਡੇਟਾ ਫਾਰਮੈਟ ਨੂੰ ਬਦਲ ਸਕਦਾ ਹੈ, ਉਹਨਾਂ ਨੂੰ ਮੁੜ ਵਿਵਸਥਿਤ ਕਰ ਸਕਦਾ ਹੈ, ਉਹਨਾਂ ਨੂੰ ਬਦਲ ਸਕਦਾ ਹੈ, ਉਹਨਾਂ ਨੂੰ ਕੱਟ ਸਕਦਾ ਹੈ, ਇਸ ਨੂੰ ਹਾਈਲਾਈਟ ਕਰ ਸਕਦਾ ਹੈ, ਸਿਗਨਲਾਂ ਨੂੰ ਗਰੁੱਪ ਕਰ ਸਕਦਾ ਹੈ, ਸਿਗਨਲਾਂ 'ਤੇ ਟਿੱਪਣੀ ਕਰ ਸਕਦਾ ਹੈ, ਸਿਗਨਲਾਂ ਦਾ ਰੰਗ ਬਦਲ ਸਕਦਾ ਹੈ, ਆਦਿ।
ਖੋਜ
ਖੋਜ ਸਬਮੇਨੂ ਦੀ ਵਰਤੋਂ ਸ਼ੁੱਧ ਨਾਮਾਂ ਅਤੇ ਮੁੱਲਾਂ 'ਤੇ ਖੋਜ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ VCD ਵਿੱਚ ਸਿਗਨਲਾਂ ਅਤੇ ਉਦਾਹਰਨਾਂ ਦੇ ਵੱਖ-ਵੱਖ ਦਰਜਾਬੰਦੀ ਪੱਧਰਾਂ 'ਤੇ ਫੰਕਸ਼ਨ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। file.
ਸਮਾਂ
ਟਾਈਮ ਸਬਮੇਨੂ ਵਿੱਚ ਨੈਵੀਗੇਸ਼ਨ ਅਤੇ ਸਟੇਟਸ ਪੈਨਲ ਬਟਨਾਂ ਦੁਆਰਾ ਕੀਤੇ ਫੰਕਸ਼ਨਾਂ ਦਾ ਇੱਕ ਸੁਪਰਸੈੱਟ ਹੁੰਦਾ ਹੈ।
ਇਹ ਸਧਾਰਨ, ਸਮੇਂ ਨਾਲ ਸਬੰਧਤ, ਫੰਕਸ਼ਨ ਜਿਵੇਂ ਕਿ ਜ਼ੂਮ ਕਰਨਾ, ਕਿਸੇ ਖਾਸ ਸਮਾਂ ਬਿੰਦੂ 'ਤੇ ਜਾਣਾ, ਸਿਗਨਲ ਨੂੰ ਇੱਕ ਖਾਸ ਦਿਸ਼ਾ ਵਿੱਚ ਤਬਦੀਲ ਕਰਨਾ, ਆਦਿ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
ਮਾਰਕਰ
ਮਾਰਕਰ ਸਬਮੇਨੂ ਦੀ ਵਰਤੋਂ ਮਾਰਕਰ 'ਤੇ ਵੱਖ-ਵੱਖ ਹੇਰਾਫੇਰੀ ਕਰਨ ਦੇ ਨਾਲ-ਨਾਲ ਸਕਰੋਲਿੰਗ ਆਫਸਕ੍ਰੀਨ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਇਹ ਸਿਗਨਲ ਵਿੰਡੋ 'ਤੇ ਕਈ ਮਾਰਕਰ ਜੋੜਨ ਦੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਵੱਧ ਤੋਂ ਵੱਧ 26 ਨਾਮ ਮਾਰਕਰਾਂ ਦੀ ਇਜਾਜ਼ਤ ਹੈ ਅਤੇ ਸਾਰਿਆਂ ਲਈ ਸਮਾਂ ਵੱਖਰਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
a. ਸਿਗਨਲ ਵਿੰਡੋ ਵਿੱਚ ਮਾਰਕਰ ਜੋੜਨ ਲਈ
ਲੋੜੀਂਦੇ ਬਿੰਦੂ 'ਤੇ ਖੱਬਾ ਕਲਿੱਕ ਕਰੋ ਜਿੱਥੇ ਤੁਸੀਂ ਮਾਰਕਰ ਨੂੰ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਅਤੇ ALT + N ਦਬਾਓ। ਇਹ ਲੋੜੀਂਦੇ ਬਿੰਦੂ 'ਤੇ ਇੱਕ ਨਾਮ ਮਾਰਕਰ (A, B, C, ਆਦਿ) ਰੱਖੇਗਾ। ਉਪਭੋਗਤਾ 26 ਵੱਖ-ਵੱਖ ਸਮੇਂ ਦੇ ਸਥਾਨਾਂ ਲਈ ਅਜਿਹਾ ਕਰਨਾ ਜਾਰੀ ਰੱਖ ਸਕਦਾ ਹੈ।
ਸਾਰੇ ਸਥਾਨਾਂ ਦੇ ਮਾਰਕਰਾਂ 'ਤੇ ਸਮੇਂ ਦੇ ਮੁੱਲ ਦੀ ਤੁਲਨਾ ਕਰਨ ਲਈ, ਮੀਨੂ → ਮਾਰਕਰ → ਬਦਲੋ ਮਾਰਕਰ ਡੇਟਾ ਦਿਖਾਓ।
ਇਹ ਹਰੇਕ ਮਾਰਕਰ 'ਤੇ ਸਮਾਂ ਮੁੱਲ ਦੇ ਨਾਲ ਇੱਕ ਵਿੰਡੋ ਖੋਲ੍ਹੇਗਾ। ਉਪਭੋਗਤਾ ਰੱਖੇ ਗਏ ਹਰੇਕ ਮਾਰਕਰ 'ਤੇ ਸਮੇਂ ਦੇ ਮੁੱਲ ਨੂੰ ਹੱਥੀਂ ਨੋਟ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ 2 ਮਾਰਕਰਾਂ ਵਿਚਕਾਰ ਸਮੇਂ ਦੇ ਅੰਤਰ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ ਉਹਨਾਂ ਨੂੰ ਘਟਾ ਸਕਦਾ ਹੈ।
b. ਸਿਗਨਲ ਵਿੰਡੋ ਵਿੱਚ ਮਾਰਕਰ ਨੂੰ ਹਟਾਉਣ ਲਈ
ਉਪਭੋਗਤਾ ਮੀਨੂ → ਮਾਰਕਰ → ਕਲੈਕਟ ਨਾਮਡ ਮਾਰਕਰ 'ਤੇ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਸਿਗਨਲ ਵਿੰਡੋ ਵਿੱਚ ਰੱਖੇ ਆਖਰੀ-ਨਾਮ ਮਾਰਕਰ ਨੂੰ ਹਟਾ ਦੇਵੇਗਾ। ਯੂਜ਼ਰ ਮੇਨੂ → ਮਾਰਕਰ → ਕਲੈਕਟ ਆਲ ਨਾਮਡ ਮਾਰਕਰ (ਚਿੱਤਰ 12) 'ਤੇ ਜਾ ਕੇ ਸਾਰੇ ਨਾਮਿਤ ਮਾਰਕਰਾਂ ਨੂੰ ਹਟਾ ਸਕਦਾ ਹੈ।
ਚਿੱਤਰ 13 ਵਿੱਚ, ਅਸੀਂ ਦੇਖ ਸਕਦੇ ਹਾਂ ਕਿ ਸਿਗਨਲ ਦੇ ਰੰਗ ਕਿਵੇਂ ਬਦਲੇ ਗਏ ਹਨ। ਤੁਸੀਂ ਇੱਕ ਟਿੱਪਣੀ - ਖਾਲੀ ਸਿਗਨਲ ਦੇ ਨਾਲ ਸਿਗਨਲ ਵਿੰਡੋ ਵਿੱਚ ਜੋੜਿਆ ਇੱਕ ਖਾਲੀ ਸਿਗਨਲ ਦੇਖ ਸਕਦੇ ਹੋ।
6 ਨਾਮੀ ਮਾਰਕਰਾਂ (A – E) ਦੀ ਮੌਜੂਦਗੀ ਅਤੇ ps ਵਿੱਚ ਇਹਨਾਂ ਮਾਰਕਰਾਂ ਦੇ ਵਿਚਕਾਰ ਸਮੇਂ ਦੇ ਮੁੱਲ ਦੀ ਸੰਪੂਰਨਤਾ ਨੂੰ ਵੀ ਨੋਟ ਕਰੋ।
View
ਦ View ਸਬਮੇਨੂ ਦੀ ਵਰਤੋਂ ਸਿਗਨਲ ਸਬ ਵਿੰਡੋ ਵਿੱਚ ਸਟੇਟਸ ਆਈਟਮਾਂ ਦੇ ਗ੍ਰਾਫਿਕਲ ਰੈਂਡਰਿੰਗ ਦੇ ਨਾਲ-ਨਾਲ ਮੁੱਲਾਂ ਨਾਲ ਸੰਬੰਧਿਤ ਵੱਖ-ਵੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਮੀਨੂ ਤੋਂ, ਤੁਸੀਂ ਸਿਗਨਲ ਵਿੰਡੋ ਨੂੰ ਕਾਲੇ ਅਤੇ ਚਿੱਟੇ ਜਾਂ ਰੰਗਦਾਰ ਵਿੱਚ ਵੀ ਬਦਲ ਸਕਦੇ ਹੋ। ਦ View ਸਬਮੇਨੂ ਤੁਹਾਨੂੰ ਸਕਿੰਟਾਂ (ਸੈਕਿੰਡ) ਤੋਂ ਫਿਕੋਸਕਿੰਡ (fs) ਤੱਕ ਦੇ ਸਮੇਂ ਦੇ ਮਾਪ ਨੂੰ ਬਦਲਣ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ। ਉਪਭੋਗਤਾ ਇਸ ਵਿਕਲਪ ਨੂੰ ਲੱਭ ਸਕਦਾ ਹੈ View → ਸਮਾਂ ਮਾਪ ਤੱਕ ਸਕੇਲ → fs।
ਮਦਦ ਕਰੋ
ਮਦਦ ਸਬਮੇਨੂ ਵਿੱਚ ਆਨ-ਲਾਈਨ ਮਦਦ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਦੇ ਨਾਲ ਨਾਲ ਪ੍ਰੋਗਰਾਮ ਸੰਸਕਰਣ ਜਾਣਕਾਰੀ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਵਿਕਲਪ ਸ਼ਾਮਲ ਹਨ।
ਸਿੱਟਾ
ਇਹ ਦਸਤਾਵੇਜ਼ ਉਪਭੋਗਤਾ ਨੂੰ ਉਹਨਾਂ ਦੇ ਡਿਜ਼ਾਈਨ ਦੀ ਸਫਲਤਾਪੂਰਵਕ ਨਕਲ ਕਰਨ ਅਤੇ ਲੋੜੀਂਦੇ ਟੈਸਟਬੈਂਚ ਦਾ ਖਰੜਾ ਤਿਆਰ ਕਰਕੇ ਅਤੇ ਵੇਵਫਾਰਮਾਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਅਤੇ ਨਤੀਜਿਆਂ ਨੂੰ ਵੇਖਣ ਲਈ GTKWave ਦੇ ਨਾਲ Icarus Verilog ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਾਰਜਕੁਸ਼ਲਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਨ ਲਈ ਬਣਾਇਆ ਗਿਆ ਸੀ।
ਸੰਸ਼ੋਧਨ ਇਤਿਹਾਸ
ਸੰਸ਼ੋਧਨ | ਮਿਤੀ | ਵਰਣਨ |
1.00 | 20 ਮਈ, 2024 | ਸ਼ੁਰੂਆਤੀ ਰੀਲੀਜ਼। |
R19US0011EU0100 Rev.1.0
20 ਮਈ, 2024
© 2024 ਰੇਨੇਸਾਸ ਇਲੈਕਟ੍ਰਾਨਿਕਸ
ਦਸਤਾਵੇਜ਼ / ਸਰੋਤ
![]() |
RENESAS ForgeFPGA ਸੌਫਟਵੇਅਰ ਸਿਮੂਲੇਸ਼ਨ [pdf] ਯੂਜ਼ਰ ਗਾਈਡ REN_r19us0011eu0100, ForgeFPGA ਸਾਫਟਵੇਅਰ ਸਿਮੂਲੇਸ਼ਨ, ForgeFPGA ਸਾਫਟਵੇਅਰ, ForgeFPGA, ForgeFPGA ਸਿਮੂਲੇਸ਼ਨ, ਸਾਫਟਵੇਅਰ ਸਿਮੂਲੇਸ਼ਨ, ਸਿਮੂਲੇਸ਼ਨ, ਸਾਫਟਵੇਅਰ |