Gut, um nicht noch mehr Verwirrung zu stiften, erkläre ich nochmal
ausführlich mein Problem:
Was ich habe sind 2 Signale (14Bit) die ich in meine Toplevel übertragen
bekomme
1 | Signal s_adc2, s_adc1: std_logic_vector (13 downto 0);
|
http://www.tek-tips.com/viewthread.cfm?qid=1455531&page=1
Dieser Aussage zufolge habe ich erst gar nicht versucht die beiden werte
miteinander zu dividieren.
Also habe ich mit 2 signale "gebastelt" 0-16383, jedoch stehen diese
beide nicht im gleichen Verhältnis zueinander
1 | Signal signal_1, signal_2, neues_signal : integer;
|
2 |
|
3 | signal_1 <= to_integer(unsigned(s_adc1));
|
4 | signal_2 <= to_integer(unsigned(s_adc2));
|
also will ich diese erst mal auf das richtige Verhältnis bringen und
dann miteinander dividieren. signal_1 soll von 0000-1000 reichen und
signal_2 von 0000-3000 reichen
1 | signal_1 <= ((signal_1*93)/512); -- 0000-3000
|
2 | signal_2 <= ((signal_2*31)/512); -- 0000-1000
|
das ganze ist aber gerade durch das kürzen sehr ungenau!
zum Schluss will ich im Prinzip nur diese beiden Werte dividieren
1 | neues_signal <= signal_1/signal_2;
|
später muss der Wert dann wieder zurück gewandelt werden in 14Bit aber
so weit bin ich noch lange nicht...
Die Beispielsrechnung sieht wie folgt aus
neues_signal=s_adc1/s_adc2=(1200*100)/500=240
die 100 dient um auch im Ergebnis die 2 Nachkommastellen zu bekommen...
oder noch besser
neues_signal=s_adc1/s_adc2=("01100110011001"*300)/"01111111111111"="0011
1101011011"
Vielleicht hat ja jemand ne gute Idee (vielleicht sogar ganz ohne
to_integer) Grüße MARCO