verilog
नमस्ते दुनिया
खोज…
उदाहरण संकलन और चलाना
का एक स्रोत फ़ाइल मान लिया जाये कि hello_world.v
और के एक शीर्ष स्तर मॉड्यूल hello_world
। कोड को विभिन्न सिमुलेटरों का उपयोग करके चलाया जा सकता है। अधिकांश सिमुलेटर संकलित संकलक हैं। उन्हें संकलन और निष्पादित करने के लिए कई चरणों की आवश्यकता होती है। आम तौर पर
- पहला कदम वेरिलॉग डिजाइन को संकलित करना है।
- दूसरा कदम डिजाइन को विस्तृत और अनुकूलित करना है।
- तीसरा चरण सिमुलेशन चलाने के लिए है।
सिम्युलेटर के आधार पर चरणों का विवरण भिन्न हो सकता है लेकिन समग्र विचार समान है।
ताल सिम्युलेटर का उपयोग करके तीन चरण की प्रक्रिया
ncvlog hello_world.v
ncelab hello_world
ncsim hello_world
- पहला कदम ncvlog फ़ाइल hello_world.v को संकलित करने के लिए है
- दूसरा चरण ncelab शीर्ष स्तर के मॉड्यूल hello_world के साथ कोड को विस्तृत करना है।
- तीसरा चरण ncsim शीर्ष स्तर के मॉड्यूल hello_world के साथ सिमुलेशन को चलाने के लिए है।
- सिम्युलेटर सभी संकलित और अनुकूलित कोड को एक काम के लिए आवश्यक बनाता है। [INCA_libs - डिफ़ॉल्ट लाइब्रेरी नाम]
ताल सिम्युलेटर का उपयोग करते हुए एकल चरण।
कमांड लाइन आंतरिक रूप से आवश्यक तीन चरणों को बुलाएगा। यह पुरानी व्याख्या की गई सिम्युलेटर निष्पादन शैली (सिंगल कमांड लाइन) की नकल करने के लिए है।
irun hello_world.v
or
ncverilog hello_world.v
नमस्ते दुनिया
कार्यक्रम हैलो वर्ल्ड का आउटपुट देता है! मानक उत्पादन के लिए।
module HELLO_WORLD(); // module doesn't have input or outputs
initial begin
$display("Hello World");
$finish; // stop the simulator
end
endmodule
वेरिलोग में मॉड्यूल एक बुनियादी बिल्डिंग ब्लॉक है। यह तत्वों के संग्रह का प्रतिनिधित्व करता है और मॉड्यूल और अंत मॉड्यूल कीवर्ड के बीच संलग्न है। यहाँ hello_world सबसे ऊपर (और एकमात्र) मॉड्यूल है।
प्रारंभिक ब्लॉक सिमुलेशन की शुरुआत में निष्पादित करता है। प्रारंभिक ब्लॉक की सीमा को चिह्नित करने के लिए शुरुआत और अंत का उपयोग किया जाता है। $display
मानक आउटपुट के लिए संदेश को आउटपुट करता है। यह संदेश के लिए "\ n" पंक्ति को सम्मिलित करता है और समाप्त होता है।
यह कोड संश्लेषित नहीं कर सकता है, अर्थात इसे चिप में नहीं रखा जा सकता है।