Saya tidak dapat mengidentifikasi konstanta VHDL di FPGA setelah sintesis. Setelah sintesis Post saya dapat mengidentifikasi logika saya di netlist. Tapi tidak untuk parameter Konstan. Apakah benar-benar konstanta akan menyimpulkan dalam FPGA atau tidak?

0
srihari 13 Agustus 2019, 18:03

1 menjawab

Jawaban Terbaik

Synthetizer menyederhanakan desain Anda.
Synthetizer mengurangi persamaan logika untuk menghapus konstanta dan menggunakan lebih sedikit LUT.
Jadi konstanta Anda termasuk dalam LUT.

Contoh, ketika Anda menulis:

constant C_CONSTANT : std_logic_vector(3 downto 0) := "1111"
...
if a = C_CONSTANT then
  b <= '1';
else
  b <= '0';
end if;

Persamaan logikanya adalah:

   b = eq(a(0),C_CONSTANT(0)).eq(a(1),C_CONSTANT(1)).eq(a(2),C_CONSTANT(2)).eq(a(3),C_CONSTANT(3))  
=> b = (a(0).C_CONSTANT(0) + /a(0)./C_CONSTANT(0)).(a(1).C_CONSTANT(1) + /a(1)./C_CONSTANT(1)).(a(2).C_CONSTANT(2) + /a(2)./C_CONSTANT(2)).(a(3).C_CONSTANT(3) + /a(3)./C_CONSTANT(3))
=> b = (a(0).1 + /a(0).0).(a(1).1 + /a(1).0).(a(2).1 + /a(2).1).(a(3).1 + /a(3).0)
=> b = a(0).a(1).a(2).a(3)

Konstanta telah memudar oleh penyederhanaan logika. Synthetizer melakukan hal yang sama untuk memberi Anda hasil ini :
masukkan deskripsi gambar di sini

0
Gautitho 14 Agustus 2019, 07:29