1
我在VHDL一個初學者,在做與用戶定義類型「距離」的一些操作所申報如下:操作使用用戶定義的物理類型VHDL
entity metric is
type DISTANCE is range 0 to 1000000000
units
nm;
mm = 10E6 nm;
cm = 10 mm;
m = 100 cm;
km = 10E3 m;
inch = 25400000 nm;
foot = 12 inch;
yard = 3 foot;
mile = 1760 yard;
end units;
end metric;
在架構,我宣佈距離類型的變量並嘗試了一些整數值的操作。
architecture test of metric is
begin
P1 : process
variable res1, res2 : DISTANCE ;
begin
res1 := 10 * (10 nm);
res2 := 10/(10 nm);
wait;
end process;
end test;
代碼編譯爲RES1但RES2發生下列錯誤 -
在變量賦值
「/」爲右側(綴表達式)否可行條目中綴運算符
任何人都可以解釋爲什麼乘法工作,但在上述情況下分裂失敗? 在此先感謝。
這裏真的沒有什麼可以自動完成的。單位是'1 /距離'會是什麼? –
@jeff:邏輯上,波數!如果OP想要這個工作,他可以聲明波數類型並且超載'/'操作符......或者目前,'10 nm/10'應該可以工作......形式上,乘法是可交換的,但是除法不是。 –