กลับไปหน้าบทความ

อ่าน 2 นาที

การดัมพ์การเปลี่ยนแปลงค่า

Value Change Dump (VCD) (หรือที่รู้จักกันในชื่อ "Variable Change Dump" น้อยกว่า) เป็นรูปแบบไฟล์ดัมพ์ที่ใช้ ASCII ซึ่งสร้างขึ้นโดยเครื่องมือ จำลองตรรกะ EDA รูปแบบ VCD มาตรฐาน...

การดัมพ์การเปลี่ยนแปลงค่า

Value Change Dump (VCD) (หรือที่รู้จักกันในชื่อ "Variable Change Dump" น้อยกว่า) เป็นรูปแบบไฟล์ดัมพ์ที่ใช้ASCII ซึ่งสร้างขึ้นโดยเครื่องมือ จำลองตรรกะEDA รูปแบบ VCD มาตรฐานที่มีสี่ค่าถูกกำหนดขึ้นพร้อมกับภาษาการอธิบายฮาร์ดแวร์VerilogโดยมาตรฐานIEEE 1364-1995ในปี 1996 รูปแบบ VCD ที่ขยายเพิ่มเติมซึ่งกำหนดขึ้นในอีกหกปีต่อมาในมาตรฐาน IEEE 1364-2001รองรับการบันทึกความแรงและทิศทางของสัญญาณ โครงสร้างที่เรียบง่ายแต่กะทัดรัดของรูปแบบ VCD ทำให้การใช้งานแพร่หลายและขยายไปสู่เครื่องมือที่ไม่ใช่ Verilog เช่นโปรแกรมจำลองVHDL GHDL และตัวติดตาม เคอร์เนลต่างๆข้อจำกัดของรูปแบบนี้คือไม่สามารถบันทึกค่าที่เก็บไว้ในหน่วยความจำได้

โครงสร้าง/ไวยากรณ์

ไฟล์ VCD ประกอบด้วยส่วนหัวที่มีข้อมูลวันที่ โปรแกรมจำลอง และมาตราเวลา ส่วนกำหนดตัวแปร และส่วนเปลี่ยนแปลงค่า ตามลำดับ ส่วนต่างๆ เหล่านี้ไม่ได้ระบุไว้อย่างชัดเจนภายในไฟล์ แต่จะระบุได้จากการรวมคำสำคัญที่เกี่ยวข้องกับแต่ละส่วน

คีย์เวิร์ดของ VCD จะมีเครื่องหมาย$นำหน้าโดยทั่วไปแล้ว คีย์เวิร์ดทุกคำจะเริ่มต้นคำสั่งซึ่งจะสิ้นสุดด้วย $end อย่างชัดเจน ตัวระบุตัวแปรอาจเริ่มต้นด้วยเครื่องหมาย $ เช่นกัน แต่สามารถแยกแยะได้จากบริบท

โทเค็น VCD ทั้งหมดถูกคั่นด้วยช่องว่างข้อมูลในไฟล์ VCD นั้นคำนึงถึงตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก

ส่วนหัว

ส่วนหัวของไฟล์ VCD ประกอบด้วยการประทับเวลาหมายเลข เวอร์ชันของ โปรแกรมจำลองและมาตราส่วนเวลา ซึ่งจะแปลงช่วงเวลาที่แสดงในส่วนการเปลี่ยนแปลงค่าไปเป็นหน่วยเวลาของการจำลอง

ส่วนการกำหนดตัวแปร

ส่วนการกำหนดตัวแปรในไฟล์ VCD ประกอบด้วยข้อมูลขอบเขต รวมถึงรายการสัญญาณที่ถูกสร้างขึ้นในขอบเขตที่กำหนด

แต่ละตัวแปรจะได้รับตัวระบุแบบสุ่มเพื่อใช้ในส่วนการเปลี่ยนแปลงค่า ตัวระบุประกอบด้วยอักขระ ASCII ที่พิมพ์ได้หนึ่งตัวขึ้นไป ตั้งแต่ ! ถึง ~ (เลขฐานสิบ 33 ถึง 126) โดยทั่วไปจะใช้ตัวระบุสั้นๆ (เช่น หนึ่งหรือสองตัว) ตัวแปรหลายตัวสามารถใช้ตัวระบุเดียวกันได้ หากโปรแกรมจำลองพิจารณาว่าตัวแปรเหล่านั้นจะมีค่าเดียวกันเสมอ กล่าวคือ เป็นสายไฟเดียวกันในขอบเขตของเน็ตลิสต์โดย รวม

คำจำกัดความประเภทขอบเขตนั้นเป็นไปตามแนวคิดของ Verilog อย่างใกล้ชิด และรวมถึงประเภทโมดูล งาน ฟังก์ชัน และการแยกกระบวนการ (fork)

ส่วน $dumpvars

ส่วนที่ขึ้นต้นด้วยคำว่า $dumpvars จะมีค่าเริ่มต้นของตัวแปรทั้งหมดที่ถูกดัมพ์ออกมา

ส่วนการเปลี่ยนแปลงค่า

ส่วนแสดงการเปลี่ยนแปลงค่าประกอบด้วยชุดการเปลี่ยนแปลงค่าตามลำดับเวลาสำหรับสัญญาณในแบบจำลองการจำลองที่กำหนด เวลาปัจจุบันระบุด้วยเครื่องหมาย '#' ตามด้วยการประทับเวลา สำหรับสัญญาณสเกลาร์ (บิตเดียว) รูปแบบคือค่าสัญญาณที่ระบุด้วย 0 หรือ 1 ตามด้วยตัวระบุสัญญาณทันทีโดยไม่มีช่องว่างระหว่างค่าและตัวระบุสัญญาณ สำหรับสัญญาณเวกเตอร์ (หลายบิต) รูปแบบคือค่าสัญญาณที่ระบุด้วยตัวอักษร 'b' หรือ 'B' ตามด้วยค่าในรูปแบบไบนารี ตามด้วยช่องว่าง แล้วตามด้วยตัวระบุสัญญาณ ค่าสำหรับตัวแปรจริงระบุด้วยตัวอักษร 'r' หรือ 'R' ตามด้วยข้อมูลโดยใช้รูปแบบ %.16g printf() ตามด้วยช่องว่าง แล้วตามด้วยตัวระบุตัวแปร

ไฟล์ VCD ตัวอย่าง

วันที่ ข้อความระบุวันที่ ตัวอย่างเช่น: 11 พฤศจิกายน 2552 ส่ง เวอร์ชัน ข้อความแสดงข้อมูลเวอร์ชันของเครื่องมือสร้าง VCD ส่ง ความคิดเห็น ข้อความแสดงความคิดเห็นใดๆ ก็ได้ ส่ง $timescale 1ps $end โมดูล $scope ตรรกะ $end $var wire 8 # data $end $var wire 1 $ data_valid $end $var wire 1 % en $end $var wire 1 & rx_en $end $var wire 1 ' tx_en $end $var wire 1 ( empty $end $var wire 1 ) underrun $end $upscope $end $enddefinitions $end $dumpvars บxxxxxxxx # x$ 0% x& x' 1( 0) ส่ง #0 b10000001 # 0 ดอลลาร์ 1% 0& 1' 0( 0) #2211 0' #2296 บ0 # 1 ดอลลาร์ #2302 0 ดอลลาร์ #2303 

โค้ดด้านบนกำหนดสัญญาณ 7 สัญญาณโดยใช้ตัวแปร $var:

$var type bitwidth id name 

รหัสนี้จะถูกนำไปใช้ในภายหลังสำหรับการแสดงค่าที่เปลี่ยนแปลง การแสดงค่าที่เปลี่ยนแปลงจะเริ่มต้นหลังจาก $enddefinitions $end และอิงตามเวลาประทับ เวลาประทับจะแสดงด้วยเครื่องหมาย '#' ตามด้วยตัวเลข ในแต่ละเวลาประทับ รายชื่อสัญญาณที่เปลี่ยนแปลงค่าจะถูกแสดงรายการ โดยใช้คู่ค่า/รหัส:

ค่าใหม่ id 

ตัวอย่างนี้จะแสดงผลดังนี้

ภาพหน้าจอแสดงตัวอย่างไฟล์ VCD ที่แสดงโดย GTKWave
ตัวอย่างไฟล์ VCD ที่แสดงโดยGTKWave

ดูเพิ่มเติม

  • IEEE Std 1364-2001 – มาตรฐานอย่างเป็นทางการสำหรับ Verilog 2001 (ไม่ฟรี มีบทที่กำหนด VCD)
  • วิธีการสร้างไฟล์ VCD ด้วยตนเอง – คู่มืออ้างอิงแบบไม่เป็นทางการแต่ครอบคลุมทุกด้าน
  • Value Change Dump – คำอธิบายรูปแบบไฟล์ VCD พร้อมตัวอย่าง
  • Compare VCD – เครื่องมือแบบบรรทัดคำสั่งสำหรับเปรียบเทียบไฟล์ VCD (ได้รับอนุญาตภายใต้ GPL)
  • Verilog::VCD – ซอฟต์แวร์ Perl CPAN สำหรับการแยกวิเคราะห์ไฟล์ Verilog VCD (ได้รับอนุญาตภายใต้ GPL)
  • Verilog_VCD – ซอฟต์แวร์ CPAN ที่แปลงจากภาษา Perl เป็นภาษา Python
  • ProcessVCD – แพ็กเกจ Java สำหรับแยกวิเคราะห์ไฟล์ VCD (ได้รับอนุญาตภายใต้ MIT License)
  • PyVCD – แพ็กเกจ Python ที่ใช้เขียนไฟล์ Value Change Dump (VCD) ตามข้อกำหนดในมาตรฐาน IEEE 1364-2005 (ลิขสิทธิ์ MIT)
  • vcdMaker – เครื่องมือ (Linux, Windows) สำหรับแปลงไฟล์บันทึกข้อความให้เป็นไฟล์ VCD (ลิขสิทธิ์ MIT)
  • yne/vcd – (Linux, Mac, Windows) โปรแกรมบรรทัดคำสั่งสำหรับแสดงไฟล์ VCD บนเทอร์มินัล (ลิขสิทธิ์ MIT)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Value_change_dump&oldid=1305282092 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การดัมพ์การเปลี่ยนแปลงค่า

Value Change Dump (VCD) (หรือที่รู้จักกันในชื่อ "Variable Change Dump" น้อยกว่า) เป็นรูปแบบไฟล์ดัมพ์ที่ใช้ ASCII ซึ่งสร้างขึ้นโดยเครื่องมือ จำลองตรรกะ EDA รูปแบบ VCD มาตรฐาน...

โครงสร้าง/ไวยากรณ์

ไฟล์ VCD ประกอบด้วยส่วนหัวที่มีข้อมูลวันที่ โปรแกรมจำลอง และมาตราเวลา ส่วนกำหนดตัวแปร และส่วนเปลี่ยนแปลงค่า ตามลำดับ ส่วนต่างๆ เหล่านี้ไม่ได้ระบุไว้อย่างชัดเจนภายในไฟล์ แต่จะระบุได้จากการรวม คำสำคัญ ที่เกี่ยวข้องกับแต่ละส่วน

ส่วนหัว

ส่วนหัวของไฟล์ VCD ประกอบด้วย การประทับเวลา หมายเลข เวอร์ชันของ โปรแกรมจำลอง และมาตราส่วนเวลา ซึ่งจะแปลงช่วงเวลาที่แสดงในส่วนการเปลี่ยนแปลงค่าไปเป็นหน่วยเวลาของการจำลอง

ส่วนการกำหนดตัวแปร

ส่วนการกำหนดตัวแปรในไฟล์ VCD ประกอบด้วยข้อมูลขอบเขต รวมถึงรายการสัญญาณที่ถูกสร้างขึ้นในขอบเขตที่กำหนด