สิ่งที่ใกล้จะ Altera ของC-เพื่อฮาร์ดแวร์ (C2H) คอมไพเลอร์ มันสามารถทำสิ่งที่คุณแนะนำ แต่มีข้อแม้ที่ท้าทาย คุณไม่สามารถเปลี่ยนรหัส C เป็นฮาร์ดแวร์ได้และคุณไม่ต้องการ แต่ฟังก์ชั่นบางอย่างทำงานค่อนข้างดีและคุณสามารถเห็นประสิทธิภาพที่เพิ่มขึ้น
โดยทั่วไปแล้วคุณจะใช้หน่วยประมวลผล softcore NIOS II ใน Altera FPGA จากนั้นคุณจะเขียนรหัส ANSI C เพื่อให้เหมือนกับตัวประมวลผลอื่น ๆ จากนั้นสมมติว่าหนึ่งในฟังก์ชัน C ที่คุณเขียนนั้นเกี่ยวข้องกับคณิตศาสตร์หนักบางอย่างที่จะเป็นประโยชน์ต่อการปฏิบัติงานจากการทำงานแบบขนาน คุณเรียกใช้คอมไพเลอร์ C2H พูดว่า "Implement in Hardware" และมันจะเปลี่ยนฟังก์ชั่นนั้นให้กลายเป็นอุปกรณ์ต่อพ่วงของหน่วยประมวลผล softcore ของ NIOS II
นี่คือตัวอย่างของการเข้ารหัสการคำนวณ Mandelbrot ใน ANSI C แล้วนำไปใช้ในฮาร์ดแวร์:
อัลกอริทึม Mandelbrot ที่คอมไพเลอร์เร่งด้วย C2H ส่งผลให้มีการปรับปรุงความเร็วอย่างน้อย 60x เมื่อเทียบกับอัลกอริทึมเดียวกันที่ทำงานบนโปรเซสเซอร์ Nios II ที่เร็วที่สุดโดยใช้การเพิ่มประสิทธิภาพคอมไพเลอร์ระดับ 2 (-O2) การเพิ่มความเร็วนี้เกิดขึ้นเนื่องจากการขนานและความเร็วการวนซ้ำที่ฮาร์ดแวร์สามารถจัดเตรียมได้ซึ่งไม่สามารถทำได้จากหน่วยประมวลผลที่ใช้งานทั่วไป
กลับไปที่ตัวอย่างของคุณโปรเซสเซอร์ NIOS II สามารถเรียกใช้ Linux และฟังก์ชั่นบางอย่างที่จำเป็นต่อการกำหนดเส้นทางงานจะได้ประโยชน์จากการเร่งด้วยฮาร์ดแวร์ มันน่าจะทำงานได้ดีกว่าเราเตอร์ซอฟต์แวร์ที่บริสุทธิ์ แต่จะไม่เข้าใกล้ประสิทธิภาพของ ASICs เฉพาะที่ออกแบบมาเป็นพิเศษ