rooli FPGA.

R

richardyue

Guest
Hei, jäsenet,
Minulla on kysymys.Mikä rooli on FPGA vuonna järjestelmää?Hope tulee mahdollisimman monta jäsentä dicussing tätä aihetta.Minulla on paljon kysymyksiä, joihin on sekava minulle paljon.Thanks in advance.

 
Kauneus on FPGA on se, että se voi olla melkein mitä tahansa digitaalinen.Voit määritellä se rooli.An FPGA on erittäin configurable.Toisin kuin ASIC, FPGA kehitys on täysin doable teidän penkki.Voit ostaa edullinen Development Kit, asentaa ohjelmia ja aloittaa kokeilevat heti.Olet kehittää algoritmeja ja sovelluksia, ja testata niitä pikku aluksella.Yksinkertaisia kokeita ottaa vain muutaman minuutin.

Siirry eteenpäin ja kysyä paljon kysymyksiä.Paljon ihmisiä täällä vastauksia.Tietysti, ota haku tällä foorumilla (tai Google) yhteisiä vastauksia.

 
Hyvä echo47,
Thanks for your help.Haluan tehdä asioita erityinen.Jos haluan suunnitella järjestelmä, joka voi olla kuva käänteinen.Tämä on, jos PIX siitä kohdasta, jos kuva on 0, niin sen jälkeen, kun tämä järjestelmä, PIX siitä kohdasta tulee 1.Miten toteutamme tätä toimintoa käyttämällä FPGA?

 
richardyue wrote:

Hyvä echo47,

Thanks for your help.
Haluan tehdä asioita erityinen.
Jos haluan suunnitella järjestelmä, joka voi olla kuva käänteinen.
Tämä on, jos PIX siitä kohdasta, jos kuva on 0, niin sen jälkeen, kun tämä järjestelmä, PIX siitä kohdasta tulee 1.
Miten toteutamme tätä toimintoa käyttämällä FPGA?
 
Käännellen, uskon,
että haluat muuntaa musta / valkoinen kuvan valkoinen / musta.Mutta "image" on liian epämääräinen.Että hanke voisi olla mitä tahansa triviaalit (kuten cfriend selitetty) lähes mahdotonta (tukee kaikin mahdollisin kuvan koodaus muodossa ja panos / tuotos-menetelmä).

 
FPGA:
n ovat yksi niistä hotests komponenttien EA tällä hetkellä.

Teet kaiken rinnalla, mitä haluat -> ohjelmasuunnittelun VHDL, mutta näinä päivinä FPGA:
n on pehmeä tai vakavimmiksi mikroprosessorit aluksella, jotta voit asentaa useimmat näistä mikroprosessorit OS: n
kaltaista pieni linux, ...jossa voit kirjoittaa ohjelmistoja.

Jotkut FPGA valmistajat sisällyttävät Analogiset estää niiden FPGA (esimerkiksi http://www.Actel.com -> FUSION kanssa ARM7 Core).

Joten FPGA voidaan järjestelmä itse ...

Jos haluat tehdä jotain NÄKEMÄN / Image Processing voit antaa NI LabVIEW NÄKEMÄN kokeilla: täällä voit ohjelmoida yksi FPGA käyttämällä NI LabVIEW, ja tämä hallitus on erityinen tehtävä NÄKEMÄN sovelluksia!

Tarkista:

http://www.ni.com/vision/cvs.htm

http://digital.ni.com/demo.nsf/websearch/4C78968C3518369E86256D82008322FD?OpenDocument&node=1286_US

 
Voimmeko sanoa, että FPGA on suoritin, aivan kuten CPU?Jos haluan suunnitella digitaalisen piirin esimerkiksi, kuten mitä olen maininnut, voimme harkita FPGA kuin musta laatikko.Meidän määritellä toiminnallisuutta ja FPGA käyttäen ohjelmistot, kuten Xilinx Ise tai Maxplus II.Olenko oikeassa?Sorry for my typerä kysymys.

 
voit olla RISC mikro-ydin, joka FPGA kuten picoblaze
tai pehmeällä prosessorin ydin, kuten microblaze
ne ovat molemmat Xilinx FPGA

 
Hei
Roolia FPGA on
u suunnittelu jotain syntetisoimiseksi ja simuloida.se toimii hyvin, mutta se ei välttämättä toimi, kun u valmistaa se pelimerkki.Nämä ovat kysymyksiä, jotka liittyvät laitteistot tat ohjelmisto ei voi käsitellä.
niin u eivät wan't viettää crores on rupia ja naamarit tarvitse valmistaa syntetisoitu RTL ja myöhemmin katuvat, jos se ei toimi.
u otettu FPGA tarkistaa sen toimivuus ja edetään.
u voi säästää rahaa ja myös tuottaa paremmin piirejä

 
An FPGA on kuin valtava digitaalinen leipälauta täynnä portit, flip-flops, RAM ja muut logiikkapiirit.Voit yhdistämään niitä melkein minkä tahansa haluamallasi tavalla, rakentaa melkein mitä tahansa haluat.Voit luoda mukautettuja mikroprosessori tai ethernet-ohjain tai video arcade peli, tai pankin digitaalisten suodattimien tai salaaminen tai salauksen purku yksikkö tai musiikki syntetisaattorin, tai digitaalisen radio, tai kaikkia niitä asioita samanaikaisesti, .. .

No, ehkä ei kaikkia niitä asioita samanaikaisesti, jos olet ostanut pienen FPGA!

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Last edited by echo47 on 03 marraskuu 2006 13:33, muokattu 1 kertaa yhteensä

 
Hi echo
Olen rakentamiseen pankki digitaalisen IIR bandpass suodattimet joka FPGA.mitään ehdotuksia.

 
Yksi helppo tapa suunnitella FIR ja IIR suodattimien on käyttää MATLAB:
n Filter Design HDL Coder.Napsautat joitakin painikkeita, anna suunnitteluparametrit, ja se Spits ulos valmis-to-use VHDL-tai Verilog.
http://www.mathworks.com/access/helpdesk/help/toolbox/hdlfilter/

Jos kuitenkin haluat käyttää jotakin murikka logiikkaa tehdä useita työpaikkoja, kuten tietojenkäsittely useita suodattimia, sinun täytyy luultavasti muuttaa MATLAB tuotokseen.

Voit myös esimerkiksi Simulink HDL Coder.
http://www.mathworks.com/access/helpdesk/help/toolbox/slhdlcoder/

 
Tiedän perusasetuksen sisäisen rakenteen FPGA.Se koostuu I / O-Block, CLB ja Interconnect Resource.Joissakin FPGA-laitteille, sillä on Block RAM-muistia.Miksi tarvitsemme tätä osaa?

 
ya
Olen käyttänyt tat luoda suodattimia.
Miten tehokkaita ovat näistä koodeista.
Olen käyttänyt fdatool ja suodatetaan suunnittelu HDL Coder.
Voinko käyttää tätä tuotti yhden suodattimen ja kehittää sarjapäätettä arkkitehtuuri tallentamalla kertoimet on rom jotka ovat parametrejä ja Verilog suodattimen koodi.

i liittää ennen kuin on Verilog-koodi (pahoillani, en tiedä miten tehdä peili upload)

/ / ------------------------------------------------ -------------
/ /
/ / Moduuli: filter_bpf
/ /
/ / Muodostettu on MATLAB (R) 7.0.4 ja Filter Design HDL Coder 1.2.
/ /
/ / Muodostettu on: 2006-09-18 22:22:37
/ /
/ / BPF 850 1150, jotta 6
/ /
/ / ------------------------------------------------ -------------

/ / ------------------------------------------------ -------------
/ / HDL Code Generation Valinnat:
/ /
/ / TargetLanguage: Verilog
/ / Nimi: filter_bpf
/ / UserComment: BPF 850 1150, jotta 6
/ / InlineConfigurations: Off
/ / SafeZeroConcat: Off
/ / CastBeforeSum: Käytössä
/ / TestBenchName: filter_tb_bpf
/ / TestBenchStimulus: askel asematasotarkastuksia sirkuttaa
/ /
/ / Suodata Asetukset:
/ /
/ / Discrete-Time IIR suodatin (Real)
/ / -------------------------------
/ / Suodattimen rakenne: Direct-Form I, Second-Order Pääluokat
/ / Numero §: 3
/ / Stable: Kyllä
/ / Linear Phase: o
/ / Aritmeettiset: kiinteät
/ / Osoittaja: S16, 14 -> [-2 2)
/ / Nimittäjä: S16, 14 -> [-2 2)
/ / Scale Arvot: S16, 14 -> [-2 2)
/ / Input: S16, 15 -> [-1 1)
/ / Output: S16, 11 -> [-16 16)
/ / Osoittaja valtio: S16, 15 -> [-1 1)
/ / Nimittäjä valtio: S16, 15 -> [-1 1)
/ / Osoittaja Tuotekoodi: s32, 29 -> [-4 4)
/ / Nimittäjä Tuotekoodi: s32, 29 -> [-4 4)
/ / Osoittaja Accum: s40, 29 -> [-1024 1024)
/ / Nimittäjä Accum: s40, 29 -> [-1024 1024)
/ / Kierroksen Mode: puheenvuoro
/ / Overflow Mode: imeyttää
/ / Cast Ennen summa: true
/ / ------------------------------------------------ -------------

"ajassa 1 ns / 1 ns

moduuli filter_bpf (CLK, clk_enable, nollaa, filter_in, filter_out);

panos CLK;
panos clk_enable;
panos reset;
panos allekirjoittanut [15:0] filter_in; / / sfix16_En15
tuotos allekirjoittanut [15:0] filter_out; / / sfix16_En11

/ / Paikallinen Functions
/ / Tyyppi Määritelmät
/ / Vakiot
parametri allekirjoittanut [15:0] scaleconst1 = 16'b0000000101011010; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_b1_section1 = 16'b0100000000000000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_b2_section1 = 16'b0000000000000000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_b3_section1 = 16'b1100000000000000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_a2_section1 = 16'b1000001100101000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_a3_section1 = 16'b0011111001111001; / / sfix16_En14
parametri allekirjoittanut [15:0] scaleconst2 = 16'b0000000101011010; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_b1_section2 = 16'b0100000000000000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_b2_section2 = 16'b0000000000000000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_b3_section2 = 16'b1100000000000000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_a2_section2 = 16'b1000001000100101; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_a3_section2 = 16'b0011111011010010; / / sfix16_En14
parametri allekirjoittanut [15:0] scaleconst3 = 16'b0000000101010111; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_b1_section3 = 16'b0100000000000000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_b2_section3 = 16'b0000000000000000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_b3_section3 = 16'b1100000000000000; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_a2_section3 = 16'b1000001111101100; / / sfix16_En14
parametri allekirjoittanut [15:0] coeff_a3_section3 = 16'b0011110101010010; / / sfix16_En14
/ / Signals
reg allekirjoittanut [15:0] input_register; / / sfix16_En15
lanka allekirjoittanut [15:0] scale1; / / sfix16_En15
lanka allekirjoittanut [31:0] mul_temp; / / sfix32_En29
/ / § 1 Signals
lanka allekirjoittanut [39:0] a1sum1; / / sfix40_En29
lanka allekirjoittanut [39:0] a2sum1; / / sfix40_En29
lanka allekirjoittanut [39:0] b1sum1; / / sfix40_En29
lanka allekirjoittanut [39:0] b2sum1; / / sfix40_En29
lanka allekirjoittanut [15:0] numtypeconvert1; / / sfix16_En15
lanka allekirjoittanut [15:0] dentypeconvert1; / / sfix16_En15
reg allekirjoittanut [15:0] numdelay_section1 [0:1]; / / sfix16_En15
reg allekirjoittanut [15:0] dendelay_section1 [0:1]; / / sfix16_En15
lanka allekirjoittanut [31:0] a2mul1; / / sfix32_En29
lanka allekirjoittanut [31:0] a3mul1; / / sfix32_En29
lanka allekirjoittanut [31:0] b1mul1; / / sfix32_En29
lanka allekirjoittanut [31:0] b3mul1; / / sfix32_En29
lanka allekirjoittanut [16:0] unaryminus_temp; / / sfix17_En15
lanka allekirjoittanut [39:0] b1multypeconvert1; / / sfix40_En29
lanka allekirjoittanut [39:0] add_cast; / / sfix40_En29
lanka allekirjoittanut [39:0] add_cast_1; / / sfix40_En29
lanka allekirjoittanut [40:0] add_temp; / / sfix41_En29
lanka allekirjoittanut [39:0] sub_cast; / / sfix40_En29
lanka allekirjoittanut [39:0] sub_cast_1; / / sfix40_En29
lanka allekirjoittanut [40:0] sub_temp; / / sfix41_En29
lanka allekirjoittanut [39:0] sub_cast_2; / / sfix40_En29
lanka allekirjoittanut [39:0] sub_cast_3; / / sfix40_En29
lanka allekirjoittanut [40:0] sub_temp_1; / / sfix41_En29
lanka allekirjoittanut [15:0] scale2; / / sfix16_En15
lanka allekirjoittanut [31:0] mul_temp_1; / / sfix32_En29
/ / 2 § Signals
lanka allekirjoittanut [39:0] a1sum2; / / sfix40_En29
lanka allekirjoittanut [39:0] a2sum2; / / sfix40_En29
lanka allekirjoittanut [39:0] b1sum2; / / sfix40_En29
lanka allekirjoittanut [39:0] b2sum2; / / sfix40_En29
lanka allekirjoittanut [15:0] numtypeconvert2; / / sfix16_En15
lanka allekirjoittanut [15:0] dentypeconvert2; / / sfix16_En15
reg allekirjoittanut [15:0] numdelay_section2 [0:1]; / / sfix16_En15
reg allekirjoittanut [15:0] dendelay_section2 [0:1]; / / sfix16_En15
lanka allekirjoittanut [31:0] a2mul2; / / sfix32_En29
lanka allekirjoittanut [31:0] a3mul2; / / sfix32_En29
lanka allekirjoittanut [31:0] b1mul2; / / sfix32_En29
lanka allekirjoittanut [31:0] b3mul2; / / sfix32_En29
lanka allekirjoittanut [16:0] unaryminus_temp_1; / / sfix17_En15
lanka allekirjoittanut [39:0] b1multypeconvert2; / / sfix40_En29
lanka allekirjoittanut [39:0] add_cast_2; / / sfix40_En29
lanka allekirjoittanut [39:0] add_cast_3; / / sfix40_En29
lanka allekirjoittanut [40:0] add_temp_1; / / sfix41_En29
lanka allekirjoittanut [39:0] sub_cast_4; / / sfix40_En29
lanka allekirjoittanut [39:0] sub_cast_5; / / sfix40_En29
lanka allekirjoittanut [40:0] sub_temp_2; / / sfix41_En29
lanka allekirjoittanut [39:0] sub_cast_6; / / sfix40_En29
lanka allekirjoittanut [39:0] sub_cast_7; / / sfix40_En29
lanka allekirjoittanut [40:0] sub_temp_3; / / sfix41_En29
lanka allekirjoittanut [15:0] scale3; / / sfix16_En15
lanka allekirjoittanut [31:0] mul_temp_2; / / sfix32_En29
/ / 3 § Signals
lanka allekirjoittanut [39:0] a1sum3; / / sfix40_En29
lanka allekirjoittanut [39:0] a2sum3; / / sfix40_En29
lanka allekirjoittanut [39:0] b1sum3; / / sfix40_En29
lanka allekirjoittanut [39:0] b2sum3; / / sfix40_En29
lanka allekirjoittanut [15:0] numtypeconvert3; / / sfix16_En15
lanka allekirjoittanut [15:0] dentypeconvert3; / / sfix16_En15
reg allekirjoittanut [15:0] numdelay_section3 [0:1]; / / sfix16_En15
reg allekirjoittanut [15:0] dendelay_section3 [0:1]; / / sfix16_En15
lanka allekirjoittanut [31:0] a2mul3; / / sfix32_En29
lanka allekirjoittanut [31:0] a3mul3; / / sfix32_En29
lanka allekirjoittanut [31:0] b1mul3; / / sfix32_En29
lanka allekirjoittanut [31:0] b3mul3; / / sfix32_En29
lanka allekirjoittanut [16:0] unaryminus_temp_2; / / sfix17_En15
lanka allekirjoittanut [39:0] b1multypeconvert3; / / sfix40_En29
lanka allekirjoittanut [39:0] add_cast_4; / / sfix40_En29
lanka allekirjoittanut [39:0] add_cast_5; / / sfix40_En29
lanka allekirjoittanut [40:0] add_temp_2; / / sfix41_En29
lanka allekirjoittanut [39:0] sub_cast_8; / / sfix40_En29
lanka allekirjoittanut [39:0] sub_cast_9; / / sfix40_En29
lanka allekirjoittanut [40:0] sub_temp_4; / / sfix41_En29
lanka allekirjoittanut [39:0] sub_cast_10; / / sfix40_En29
lanka allekirjoittanut [39:0] sub_cast_11; / / sfix40_En29
lanka allekirjoittanut [40:0] sub_temp_5; / / sfix41_En29
lanka allekirjoittanut [15:0] output_typeconvert; / / sfix16_En11
reg allekirjoittanut [15:0] output_register; / / sfix16_En11

/ / Block Lausumat
aina @ (posedge CLK tai posedge reset)
alkaa: input_reg_process
if (reset == 1'b1) alkaa
input_register <= 0;
loppu
muuten alkaa
if (clk_enable == 1'b1) alkaa
input_register <= filter_in;
loppu
loppu
varten / / input_reg_process

antaa mul_temp = input_register * scaleconst1;
antaa scale1 = (mul_temp [31] == 1'b0 & mul_temp [30:29]! = 2'b00)?16'b0111111111111111:
(mul_temp [31] == 1'b1 & & mul_temp [30:29]! = 2'b11)?16'b1000000000000000: mul_temp [29:14];

/ / ------------------ § 1 ------------------

antaa numtypeconvert1 = scale1;

antaa dentypeconvert1 = (a1sum1 [39] == 1'b0 & a1sum1 [38:29]! = 10'b0000000000)?16'b0111111111111111:
(a1sum1 [39] == 1'b1 & & a1sum1 [38:29]! = 10'b1111111111)?16'b1000000000000000: a1sum1 [29:14];

aina @ (posedge CLK tai posedge reset)
alkaa: numdelay_process_section1
if (reset == 1'b1) alkaa
numdelay_section1 [0] <= 0;
numdelay_section1 [1] <= 0;
loppu
muuten alkaa
if (clk_enable == 1'b1) alkaa
numdelay_section1 [0] <= numtypeconvert1;
numdelay_section1 [1] <= numdelay_section1 [0];
loppu
loppu
varten / / numdelay_process_section1

aina @ (posedge CLK tai posedge reset)
alkaa: dendelay_process_section1
if (reset == 1'b1) alkaa
dendelay_section1 [0] <= 0;
dendelay_section1 [1] <= 0;
loppu
muuten alkaa
if (clk_enable == 1'b1) alkaa
dendelay_section1 [0] <= dentypeconvert1;
dendelay_section1 [1] <= dendelay_section1 [0];
loppu
loppu
varten / / dendelay_process_section1

antaa a2mul1 = dendelay_section1 [0] * coeff_a2_section1;

antaa a3mul1 = dendelay_section1 [1] * coeff_a3_section1;

antaa b1mul1 = $ allekirjoittanut ((numtypeconvert1, 14'b00000000000000));

antaa unaryminus_temp = (numdelay_section1 [1] == 16'b1000000000000000)?$ allekirjoittanut ((1'b0, numdelay_section1 [1])):-numdelay_section1 [1];
antaa b3mul1 = $ allekirjoittanut ((unaryminus_temp, 14'b00000000000000));

antaa b1multypeconvert1 = $ allekirjoittanut (((8 (b1mul1 [31])), b1mul1));

antaa b1sum1 = b1multypeconvert1;

antaa add_cast = b1sum1;
antaa add_cast_1 = $ allekirjoittanut (((8 (b3mul1 [31])), b3mul1));
antaa add_temp = add_cast add_cast_1;
antaa b2sum1 = (add_temp [40] == 1'b0 & add_temp [39]! = 1'b0)?40'b0111111111111111111111111111111111111111:
(add_temp [40] == 1'b1 & & add_temp [39]! = 1'b1)?40'b1000000000000000000000000000000000000000: add_temp [39:0];

antaa sub_cast = b2sum1;
antaa sub_cast_1 = $ allekirjoittanut (((8 (a2mul1 [31])), a2mul1));
antaa sub_temp = sub_cast - sub_cast_1;
antaa a2sum1 = (sub_temp [40] == 1'b0 & sub_temp [39]! = 1'b0)?40'b0111111111111111111111111111111111111111:
(sub_temp [40] == 1'b1 & & sub_temp [39]! = 1'b1)?40'b1000000000000000000000000000000000000000: sub_temp [39:0];

antaa sub_cast_2 = a2sum1;
antaa sub_cast_3 = $ allekirjoittanut (((8 (a3mul1 [31])), a3mul1));
antaa sub_temp_1 = sub_cast_2 - sub_cast_3;
antaa a1sum1 = (sub_temp_1 [40] == 1'b0 & sub_temp_1 [39]! = 1'b0)?40'b0111111111111111111111111111111111111111:
(sub_temp_1 [40] == 1'b1 & & sub_temp_1 [39]! = 1'b1)?40'b1000000000000000000000000000000000000000: sub_temp_1 [39:0];

antaa mul_temp_1 = dentypeconvert1 * scaleconst2;
antaa scale2 = (mul_temp_1 [31] == 1'b0 & mul_temp_1 [30:29]! = 2'b00)?16'b0111111111111111:
(mul_temp_1 [31] == 1'b1 & & mul_temp_1 [30:29]! = 2'b11)?16'b1000000000000000: mul_temp_1 [29:14];

/ / ------------------ § 2 ------------------

antaa numtypeconvert2 = scale2;

antaa dentypeconvert2 = (a1sum2 [39] == 1'b0 & a1sum2 [38:29]! = 10'b0000000000)?16'b0111111111111111:
(a1sum2 [39] == 1'b1 & & a1sum2 [38:29]! = 10'b1111111111)?16'b1000000000000000: a1sum2 [29:14];

aina @ (posedge CLK tai posedge reset)
alkaa: numdelay_process_section2
if (reset == 1'b1) alkaa
numdelay_section2 [0] <= 0;
numdelay_section2 [1] <= 0;
loppu
muuten alkaa
if (clk_enable == 1'b1) alkaa
numdelay_section2 [0] <= numtypeconvert2;
numdelay_section2 [1] <= numdelay_section2 [0];
loppu
loppu
varten / / numdelay_process_section2

aina @ (posedge CLK tai posedge reset)
alkaa: dendelay_process_section2
if (reset == 1'b1) alkaa
dendelay_section2 [0] <= 0;
dendelay_section2 [1] <= 0;
loppu
muuten alkaa
if (clk_enable == 1'b1) alkaa
dendelay_section2 [0] <= dentypeconvert2;
dendelay_section2 [1] <= dendelay_section2 [0];
loppu
loppu
varten / / dendelay_process_section2

antaa a2mul2 = dendelay_section2 [0] * coeff_a2_section2;

antaa a3mul2 = dendelay_section2 [1] * coeff_a3_section2;

antaa b1mul2 = $ allekirjoittanut ((numtypeconvert2, 14'b00000000000000));

antaa unaryminus_temp_1 = (numdelay_section2 [1] == 16'b1000000000000000)?$ allekirjoittanut ((1'b0, numdelay_section2 [1])):-numdelay_section2 [1];
antaa b3mul2 = $ allekirjoittanut ((unaryminus_temp_1, 14'b00000000000000));

antaa b1multypeconvert2 = $ allekirjoittanut (((8 (b1mul2 [31])), b1mul2));

antaa b1sum2 = b1multypeconvert2;

antaa add_cast_2 = b1sum2;
antaa add_cast_3 = $ allekirjoittanut (((8 (b3mul2 [31])), b3mul2));
antaa add_temp_1 = add_cast_2 add_cast_3;
antaa b2sum2 = (add_temp_1 [40] == 1'b0 & add_temp_1 [39]! = 1'b0)?40'b0111111111111111111111111111111111111111:
(add_temp_1 [40] == 1'b1 & & add_temp_1 [39]! = 1'b1)?40'b1000000000000000000000000000000000000000: add_temp_1 [39:0];

antaa sub_cast_4 = b2sum2;
antaa sub_cast_5 = $ allekirjoittanut (((8 (a2mul2 [31])), a2mul2));
antaa sub_temp_2 = sub_cast_4 - sub_cast_5;
antaa a2sum2 = (sub_temp_2 [40] == 1'b0 & sub_temp_2 [39]! = 1'b0)?40'b0111111111111111111111111111111111111111:
(sub_temp_2 [40] == 1'b1 & & sub_temp_2 [39]! = 1'b1)?40'b1000000000000000000000000000000000000000: sub_temp_2 [39:0];

antaa sub_cast_6 = a2sum2;
antaa sub_cast_7 = $ allekirjoittanut (((8 (a3mul2 [31])), a3mul2));
antaa sub_temp_3 = sub_cast_6 - sub_cast_7;
antaa a1sum2 = (sub_temp_3 [40] == 1'b0 & sub_temp_3 [39]! = 1'b0)?40'b0111111111111111111111111111111111111111:
(sub_temp_3 [40] == 1'b1 & & sub_temp_3 [39]! = 1'b1)?40'b1000000000000000000000000000000000000000: sub_temp_3 [39:0];

antaa mul_temp_2 = dentypeconvert2 * scaleconst3;
antaa scale3 = (mul_temp_2 [31] == 1'b0 & mul_temp_2 [30:29]! = 2'b00)?16'b0111111111111111:
(mul_temp_2 [31] == 1'b1 & & mul_temp_2 [30:29]! = 2'b11)?16'b1000000000000000: mul_temp_2 [29:14];

/ / ------------------ § 3 ------------------

antaa numtypeconvert3 = scale3;

antaa dentypeconvert3 = (a1sum3 [39] == 1'b0 & a1sum3 [38:29]! = 10'b0000000000)?16'b0111111111111111:
(a1sum3 [39] == 1'b1 & & a1sum3 [38:29]! = 10'b1111111111)?16'b1000000000000000: a1sum3 [29:14];

aina @ (posedge CLK tai posedge reset)
alkaa: numdelay_process_section3
if (reset == 1'b1) alkaa
numdelay_section3 [0] <= 0;
numdelay_section3 [1] <= 0;
loppu
muuten alkaa
if (clk_enable == 1'b1) alkaa
numdelay_section3 [0] <= numtypeconvert3;
numdelay_section3 [1] <= numdelay_section3 [0];
loppu
loppu
varten / / numdelay_process_section3

aina @ (posedge CLK tai posedge reset)
alkaa: dendelay_process_section3
if (reset == 1'b1) alkaa
dendelay_section3 [0] <= 0;
dendelay_section3 [1] <= 0;
loppu
muuten alkaa
if (clk_enable == 1'b1) alkaa
dendelay_section3 [0] <= dentypeconvert3;
dendelay_section3 [1] <= dendelay_section3 [0];
loppu
loppu
varten / / dendelay_process_section3

antaa a2mul3 = dendelay_section3 [0] * coeff_a2_section3;

antaa a3mul3 = dendelay_section3 [1] * coeff_a3_section3;

antaa b1mul3 = $ allekirjoittanut ((numtypeconvert3, 14'b00000000000000));

antaa unaryminus_temp_2 = (numdelay_section3 [1] == 16'b1000000000000000)?$ allekirjoittanut ((1'b0, numdelay_section3 [1])):-numdelay_section3 [1];
antaa b3mul3 = $ allekirjoittanut ((unaryminus_temp_2, 14'b00000000000000));

antaa b1multypeconvert3 = $ allekirjoittanut (((8 (b1mul3 [31])), b1mul3));

antaa b1sum3 = b1multypeconvert3;

antaa add_cast_4 = b1sum3;
antaa add_cast_5 = $ allekirjoittanut (((8 (b3mul3 [31])), b3mul3));
antaa add_temp_2 = add_cast_4 add_cast_5;
antaa b2sum3 = (add_temp_2 [40] == 1'b0 & add_temp_2 [39]! = 1'b0)?40'b0111111111111111111111111111111111111111:
(add_temp_2 [40] == 1'b1 & & add_temp_2 [39]! = 1'b1)?40'b1000000000000000000000000000000000000000: add_temp_2 [39:0];

antaa sub_cast_8 = b2sum3;
antaa sub_cast_9 = $ allekirjoittanut (((8 (a2mul3 [31])), a2mul3));
antaa sub_temp_4 = sub_cast_8 - sub_cast_9;
antaa a2sum3 = (sub_temp_4 [40] == 1'b0 & sub_temp_4 [39]! = 1'b0)?40'b0111111111111111111111111111111111111111:
(sub_temp_4 [40] == 1'b1 & & sub_temp_4 [39]! = 1'b1)?40'b1000000000000000000000000000000000000000: sub_temp_4 [39:0];

antaa sub_cast_10 = a2sum3;
antaa sub_cast_11 = $ allekirjoittanut (((8 (a3mul3 [31])), a3mul3));
antaa sub_temp_5 = sub_cast_10 - sub_cast_11;
antaa a1sum3 = (sub_temp_5 [40] == 1'b0 & sub_temp_5 [39]! = 1'b0)?40'b0111111111111111111111111111111111111111:
(sub_temp_5 [40] == 1'b1 & & sub_temp_5 [39]! = 1'b1)?40'b1000000000000000000000000000000000000000: sub_temp_5 [39:0];

antaa output_typeconvert = $ allekirjoittanut (((4 (dentypeconvert3 [15])), dentypeconvert3 [15:4]));

aina @ (posedge CLK tai posedge reset)
alkaa: output_reg_process
if (reset == 1'b1) alkaa
output_register <= 0;
loppu
muuten alkaa
if (clk_enable == 1'b1) alkaa
output_register <= output_typeconvert;
loppu
loppu
varten / / output_reg_process

/ / Tehtävä Lausumat
antaa filter_out = output_register;

endmodule / / filter_bpf

 
Kysymykseenne noin kuvan inversion, pohjimmiltaan se on lineaarinen kohta muutoksen kanssa kaava.

tuotos pikseli = suurin arvo - tulo pikselin

ja te puhutte binary kuvia, joten suurin arvo on 1.soveltaa tätä jokaisen pikselin ja kuva tulee käänteistä annettua kuvaa.

voit toteuttaa se MXN subtractors varten MXN kuva.voit myös toteuttaa se taitellun arkkitehtuuri.tai voit toteuttaa jalostaja (Micorblaze) on FPGA ja tehdä tämän kanssa muutaman rivin C.

koskevat muut kysymykset, compairing FPGA kanssa mikroprosessorit on kuin compairing omenat kanssa appelsiinit.sitä mieltä, että FPGA kuin meressä portit.ja toiseksi, mitä te polttaa sen FPGA ei ohjelmistoja.Verilog HDL ja VHDL eivät ohjelmointikieliin, ne laitteiston kuvaus kielillä.vaikka HDLs on monia korkean tason kielellä (HLL) konstruktioita, mutta te dont on viitteitä viitteet ja viitteitä toimintoja HDLs.

kuin RAM resurssien hyvin, rsrinivas on vastannut siihen.Saatat myös joutua RAM, jos sinulla on mikroprosessori / mikro ydin teidän suunnittelu tallentaa ohjelmaa.

Toivon, että auttaa

 
Hei ystävät
Ihmettelen, jos se on mahdollista, että voit lähettää minulle MATLAB:
n Filter Design HDL Coder, Simulink HDL Coder asentimen tiedostot.
I'd olla kiitollisia, jos annat minulle käsi
Have a nice aika
Terveisin
alimassster (at) gmail.com

 
Mielestäni olen edelleen harkita FPGA kuin jalostajana.Ehkä se ei ole aivan oikeassa.Thanks for all your help.Olen todella arvostaa sitä.Seuraava kysymys on, mitä rooleja tärkeimmät osat ovat FPGA.Esimerkiksi, FPGA koostuu CLBS, IOBs ja IRS.The IOBs käytetään kytkemään sisäisiä osia FPGA että ulkomaailmaan.IRS käytetään kytkeä kunkin CLB on FPGA.Mutta mikä on toiminnon CLBS?Thanks in advance.

 
Vaikka se voidaan pitää prosessori, että FPGA ei voida pitää tietokoneeseen suorittaa järjestyksessä kone ohjeet (normaalin ohjelmistot, jotka ovat käännöksiä jos-niin, tapauksessa, ja sekvensointi).

Oletan, IR tarkoittaa "sisäinen routing", joka on yksinkertaisesti nippu "lankoja".Mistä luulet "digitaalisten logiikka" sijaitsee?

 
Kokeile tätä kuvaus:
http://en.wikipedia.org/wiki/Fpga

Lisätietoja CLB, IOB jne., kokeile selaat Spartan-3E käyttöturvallisuustiedote.It's a nice moderni edullinen FPGA.Aloita sivua 3: sta 5:
http://direct.xilinx.com/bvdocs/publications/ds312.pdf
you design one and drop it inside.

An FPGA voidaan helposti mikroprosessorin jos
suunnittelun yksi ja pudottaa sen sisälle.Tai se voi olla jotain täysin erilaista.(Muuten, jotkut FPGA tarjoaa sulautettujen mikroprosessori käytettävissä, jos sitä tarvitsevat, kuten PowerPC sisällä Virtex-4 FX).

Kun suunnittelu tavaraa sisällä FPGA, olet tekemässä digitaalisen laitteiston suunnitteluun, ei ohjelma-mikroprosessorin.Se on samanlainen kuin ennen vanhaan, kun rakennetaan järjestelmien TTL ja CMOS-sirut: voit piirtää järjestelmän lohkokaavio, sitten ulos tiedot ja valvonta ajoituksen yksityiskohdat ja sitten toteuttaa logiikan kanssa kaavio.Saman FPGA, mutta nyt käyttää HDL sijaan kömpelö Kaavio.The FPGA Ohjelmistotestaus auttaa sinua kuormitus että laitteiston suunnittelun osaksi FPGA.Teidän on ymmärrettävä, digitaalinen laitteisto suunnittelu ennen FPGA tekee paljon järkeä.

richardyue, aiemmin pyysitte "Miksi tarvitsemme tätä osaa?", Joka "osaa" olit viittaavat?

Mielestäni MATLAB:
n Filter Design HDL Coder tuottaa vain rinnakkain aritmeettinen varten IIR suodattimet, ei järjestysnumero.
Last edited by echo47 on 04 marraskuu 2006 14:02, muokattu 1 kertaa yhteensä

 
Kiitos teille kaksi apua.IR edustaa Interconnect Resoures.Ensinnäkin Luen tekninen huolellisesti.Olen varma, että siellä on joitakin kysymyksiä, toivon teille kaksi voivat edelleen auttaa minua.Thanks in advance.

 

Welcome to EDABoard.com

Sponsor

Back
Top