Kann ich folgendes Konstrukt allgemein mit Hilfe einer for...loop formulieren? Oder wie macht man das elegant, ohne dass ich jede
process(clkfx) begin if rising_edge(clkfx) then case bcd1bcd0 is when x"01" => divider divider divider divider
Kann ich folgendes Konstrukt allgemein mit Hilfe einer for...loop formulieren? Oder wie macht man das elegant, ohne dass ich jede
process(clkfx) begin if rising_edge(clkfx) then case bcd1bcd0 is when x"01" => divider divider divider divider
Am 07.11.2017 um 15:06 schrieb Mathias Weierganz:
Mit einer lookup tabelle:
Irgendwann muss schon jemand die Konstanten eintippen...
Hope it helps - Udo
Am 07.11.2017 um 15:29 schrieb Newdo:
Am 07.11.2017 um 15:44 schrieb Mathias Weierganz:
Frage hervorging , dass es eine Formel gibt...
Mal sehen...
- Udo
Am 07.11.2017 um 15:44 schrieb Mathias Weierganz:
Ich denke, so etwas sollte gehen:
Gruss Udo
Mit divider = ComputeDivider(bcd1bcd0) als Inhalt der for-Schleife
Am 07.11.2017 um 15:44 schrieb Mathias Weierganz:
Mal eben kurz geht in VHDL erstmal garnix. :-(
Ich habe auf opencores.org eine sinus/cosinus-Funktion abgelegt.
werden. Die Resultate werden dann in ROMs verpackt.
der Compiler an den PC durchreichen kann, also sin, cos, tan, log, dividieren, files lesen und so weiter.
Das meiste an den Quellen, wie die Erweiterung von 90 auf 360 Grad, das automatisierte Pipelining oder das Erzeugen von sin & cos
Was dich interessiert ist nur die Deklaration der Tabelle und die Funktion initialisiere_tabelle() oder so.
<Genauigkeit kannst du den auch als ROM erschlagen oder du musst halt mehrere Tabellen vorausberechnen.
Variables won't, and constants aren't.
type t_div_tab is array(153 downto 0) of std_logic_vector(15 downto 0); signal div_tab : t_div_tab ; ...
div_tab_gen1: for nn in 0 to 9 generate div_tab_gen2: for n in 0 to 9 generate div_tab(nn * 16 + n)
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.