Pochodzę ze środowiska programistycznego i nie przesadzam ze sprzętem lub oprogramowaniem układowym (co najwyżej trochę elektroniki i Arduino).
Jaka jest motywacja do używania języków opisu sprzętu (HDL), takich jak Verilog i VHDL, zamiast języków programowania, takich jak C lub niektóre asemblery?
Czy to w ogóle kwestia wyboru?
Czytałem, że sprzęt, którego oprogramowanie wbudowane jest w HDL, ma wyraźną przewagę w równoległym uruchamianiu instrukcji. Byłem jednak zaskoczony, gdy dyskusje wyrażały wątpliwości, czy napisać oprogramowanie układowe w języku C czy asemblerowym (w jaki sposób zestawienie jest odpowiednie, jeśli niekoniecznie masz procesor?), Ale doszedłem do wniosku, że jest to również opcja.
Dlatego mam kilka pytań (nie wahaj się niczego wyjaśniać):
Oprogramowanie naprawdę można napisać albo w HDL, albo w języku programowania, czy to tylko kolejny sposób na wykonanie tej samej misji? Chciałbym przykłady z prawdziwego świata. Jakie ograniczenia wynikające z każdej opcji?
Wiem, że powszechne użycie oprogramowania układowego nad oprogramowaniem jest w akceleratorach sprzętowych (takich jak procesory graficzne, karty sieciowe, akceleratory SSL itp.). Jak rozumiem, to przyspieszenie nie zawsze jest konieczne, ale tylko zalecane (na przykład w przypadku SSL i przyspieszania złożonych algorytmów). Czy we wszystkich przypadkach można wybrać oprogramowanie wewnętrzne i oprogramowanie? Jeśli nie, chętnie skorzystam z przypadków, w których oprogramowanie układowe jest wyraźnie i jednoznacznie odpowiednie.
Czytałem, że oprogramowanie układowe najczęściej jest nagrywane na ROM lub flash. Jak się tam reprezentuje? W bitach, jak oprogramowanie? Jeśli tak, jaka jest największa różnica? Czy jest to dostępność dostosowanych obwodów w przypadku oprogramowania układowego?
Wydaje mi się, że popełniłem błąd tu i tam w niektórych założeniach, proszę wybacz mi. Dziękuję Ci!