Verilog adders (Verilog optimering) Jag hade antagit att Verilog skulle kollapsa konstanter, men jag undrar om det alltid är truedallowed Om jag har något som reg 7: 0 sig1, sig2, sig3 alltid sig3 1 2 3 sig1 sig2 4 Det måste finnas minst 2 adderarna. Er Verilog krävs för att producera 3 tillägg Koden kan enkelt kollapsas till sig3 6 sig1 sig2 4 Verilog utvärderar åt vänster till höger, så detta blir sig3 ((6 sig1) sig2) 4 Detta kräver 3 adderare. Är det lagligt för Verilog att sammanställa den ursprungliga koden till: sig3 10 sig1 sig2 Tankar Tack John Providenza De flesta syntesverktyg kommer att dra fördel av associativa och kommutativa egenskaper hos uttryck för att åstadkomma en optimal implementering. Om de inte brukar använda jag dem väldigt länge. Andy På Aug 29, 7: 03A0am, Andy ltjonesa. comcastgt skrev: gt De flesta syntesverktyg kommer att utnyttja associativa och gt commutativa egenskaper hos uttryck för att producera en optimal GT-implementering. Om de inte brukar använda jag dem väldigt länge. gt gt Andy För grins skapade jag ett mycket enkelt testfall och syntetiserade det med hjälp av Xilinx XST synthesizer. Här är koden: modultest (ingångsklk, ingång 7: 0 a, b, utgångsreg 7: 0 z) reg 7: 0 a1, b1, z1 alltid (posedge clk) börjar a1 lt3D a b1 lt3D b. Verilog-System Verilog Integration Jag gör ett system verilog restriktion slumpmässig testbänk. Jag har en testmiljö i verilog. Nu när jag försöker köra den här verilog-testbänken i min miljö ser jag en hel del synfelfel av Verilog, vilken annan klok inte uppstår. Jag har också använt - sverilog-omkopplaren för VCS också. Kan någon föreslå hur man mixar verilog - och systemverilog-kompileringen för att inte stöta på sådana problem Hej, min gissning är att din Verilog-kod använder SV reserverade ord som quotdopriorityquot etc. Visa några få fel att säga mer solidt. Om så är fallet, hänvisa till: synopsyslinksvamar05.htmlBAC-vaampLinkVAHomeMar05Issue I grund och botten behöver du använda växlar som: systemverilogext. sv etc. HTH Ajeetha, CVC noveldv gomsi skrev: gt Jag gör ett system verilog-tvångssvårtestbänk. Jag har en upp gt och kör testmiljö i verilog. Nu när jag försöker köra denna gt system verilog testbänk i min miljö ser jag en hel del gt syntex fel av verilog vilken annan klok inte uppstår. Jag har också använt gt - sverilog-omkopplaren för VCS också. Kan någon vänligen föreslå hur man mixar verilog - och systemverilog-kompileringen för att inte stöta på sådana gtproblem som gomsi skrev: gt Jag gör ett system verilog-tvångssvårtestbänk. Jag har en upp gt och kör testmiljö i verilog. Nu när jag försöker köra denna GT system verilog testbänk i min miljö ser jag en wh. verilog plse hjälpa mig med detta. jag har en matlab kod jag ville konvertera den till vhdl eller verilog. någon har en ide om detta. pls hjälpa mig med det här. kiran. verilog sir. Jag gör ett projekt på WCDMA för min B tech. i är en B tech finalårsstudent. så min tvivel är att jag har en konvolutions kodare med tre bit register. vilken typ av avkodare jag kan använda för motsvarande encoder. plz ge mig en lösning och jag behöver ladda ner convolution kodaren till FPGA. i vet inte hur plz ge mig en lösning smubarak. e 23 feb, 16:38, lovetoesm ltloveto. gmailgt skrev: gt sir. gt Jag gör ett projekt på WCDMA för min B tech. i är en B tech final gt årsstudent. gt så min tvivel är att jag har en konvolusion kodare med tre bit gt register. vilken typ av avkodare jag kan använda för motsvarande gt encoder. plz ge mig en lösning gt och jag behöver ladda ner convolutionencoderen till FPGA. i vet inte Du kan välja en viterbiavkodare för din konverteringskodare. Du kan implementera i verilog. Du kan ladda ner konverteringskodaren till FPGA, för att du kan välja någon användare IO från FPGA för den motsvarande porten i ditt program. Liknande återställ, ladda, skift som this. if du vet inte verktyget flödet informera mig så. vilja hjälpa dig för något verktyg. här ladda ner programmet till FPGA. om du har någon tvivel jag någon annan sak i vlsi plz informera oss mentorssignatrix. in signatrix. in. Automatisk avslutning för Verilog och System Verilog Hej, jag vill skriva en automatisk färdigställningsfunktion för en Verilog och SV IDE som innehåller följande funktioner: 1. Word-slutförande. 2. Medlemmens slutförande. 3. Parameteravslutning Jag letar efter allt material jag kan hitta som kan hjälpa mig att få idéer om hur man implementerar en sådan funktion. Har du några förslagslänkar kan du peka mig på öppna källorartiklar om detta ämne Tack, Orly Hej, jag skapade en emacs-lägesfil för SV som skulle göra dessa saker ganska bra. Största problemet jag är inrymmet. Ärligt talat, jag är inte en LISP-expert, snarare hackat något gammalt VERAJEDAPSL-läge för att jobba för SV. Jag kan skicka den till dig (eller ladda upp till noveldv, men det skulle ta några dagar) om du skickar ett mejl till gmail ajeetha Ansvarsbegränsning: Det är en inte välskriven lägesfil, åtminstone en användare tyckte det inte så mycket så inte högt förväntningar tack. Jag gillar det helt enkelt för quotword completionquot och inget annat. Jag har inte spenderat tillräckligt med tid för att uppdatera det, eftersom jag är upptagen med andra saker. BTW - vilken IDE räknar du med? Hälsningar Ajeetha noveldv. hur man gör Verilog netlist utan Verilog-licens Jag jobbar med ett blandat signalchip och jag vill skapa en Verilog netlist av några av mina block för den digitala killen på projektet. Jag använder DFII och jag har ingen NC Verilog-licens, behöver jag bara för att skapa en netlist, jag försökte Tools-gtSimulation-gtNCVerilog från schematisk och File-gtexport från icfb utan lycka till. Om jag inte kan göra en netlist direkt, har någon en spectreToVerilog ((eller CDLToVerilog) - konverterare som de kan peka på mig. En snabb sökning av den här webbplatsen visade inte upp något. Tack på förhand DAvid Reynolds On 21 Jun 2006 05:53:59 -0700, quotDReynoldsquot ltspurwinktechgmailgt skrev: gt Jag arbetar med ett mixed signal chip och jag vill skapa en gtVerilog netlist av några av mina block för den digitala killen på gtproject. Jag använder DFII och jag har inte en NC Verilog licens , laddar jag på bara för att skapa en netlist jag försökte Tools-gtSimulation-gtNCVerilog gtfrom schematisk och File-gtexport från icfb utan lycka. gt gtIf kan jag göra en netlist direkt, har någon en spectreToVerilog gt ((eller CDLToVerilog) omvandlare de kan peka mig på En snabb sökning på gtthis webbplats visade inte något. gt gtthanks i förväg gt gtDAvid Reynolds Du behöver inte en Verilog licens eller NC Verilog licens till netlist. Du behöver dock en quot21400quot licens (cv Virtuoso R) Schematisk E ditor Verilog (R) Interfacequot). Med andra ord behöver du inte en simulator lic. verilog-a Finns det någon verilog-en specifik nyhetsgrupp Tack Keith. verilog-A Hej what39s verilog-A är det något som är relaterat till analog finns det några verktyg från kadensstöd som Thanks Verilog-A är ett analogt beteendemodelleringsspråk. Se accellera och verilog-ams Du kanske också vill titta på den nya boken quotThe Designer39s Guide till Verilog-AMSquot av Ken Kundert och Olaf Zinke (Kluwer Academic Publishers). Den stöds i Cadence in Specter (den första simulatorn för att stödja Verilog-A), och även i AMS Designer-simulatorn. Hälsningar, Andrew. På Fre, 6 Aug 2004 10:33:51 -0700, quotCarsonquot ltcarsoni. design av miniräknare i verilog Hej alla, jag behöver designa en räknare i verilog för 4 operationer:,,,. Det är 8-bitars miniräknare. Jag har utformat alla fyra driftsmoduler och de fungerar bra. Kalkylatorn gör också operationer på 2 operander. Nu vad jag inte kan räkna ut är om jag trycker på knappsatsen (det här kommer att bli en fpga med knappsatsansluten) säger 12. 3. Jag menar att jag förväntar mig ett svar 3 första gången jag säger och då samma sak måste betraktas som en av operandema i nästa beräkning så att det slutliga svaret är 6. Kan någon ge mig en uppfattning om hur man ska räkna ut detta i verilog. Jag är ganska förvirrad. Hälsningar. Sunita Sunitajaingmail (Sunita Jain) skrev i meddelande nyheter: lt9bfc40d7.0411070448.603c7047posting. googlegt. gt Hej alla, gt Jag behöver designa en räknare i verilog för 4 operationer:, -,,. gt Det är 8-bitars miniräknare. gt Jag har utformat alla fyra driftsmoduler och de arbetar bra. Kalkylatorn gör också operationer på 2 operander. Nu är det jag inte kan räkna ut om jag trycker på knappsatsen (det här kommer att vara en fpga med knappsatsansluten) säga 12. 3. gt Jag menar att jag förväntar mig ett svar 3 första gången jag säger och då samma gt sak måste betraktas som en av operandema i nästa gtberäkning så att det sista svaret är 6. Kan någon ge mig en ide om hur man ska räkna ut detta i verilog. Jag är ganska mycket förvirrad. Bestämning av filType (verilog, VHDL eller System Verilog) Jag har en lista över HDL-filer. Hur får jag reda på typen av varje fil (Verilog, System Verilog eller VHDL). Skulle vara bra om några enkla verktyg i CC redan finns där. Jag behöver inte veta smakerna av verilog som 95, 2000 etc men skulle inte tänka på den extra informationen om det finns. På 2007-12-11 skrev verylog ltsachin. goyal. newgmailgt: gt Jag har en lista med HDL-filer. gt Hur får jag reda på typen av varje fil (Verilog, System Verilog eller gt VHDL). gt Det skulle vara bra om några enkla verktyg i CC redan finns där. gt Jag behöver inte veta smakerna av verilog som 95, 2000 etc men jag skulle inte tänka på extra information om det. Personligen skulle jag bara titta på filtillägget, om någon inte heter filer korrekt måste han eller hon förvänta sig problem :) En annan möjlighet: Bara försök att kompilera den med din nuvarande RTL-simulator och se om den kompilerar rent med antingen Verilog, SystemVerilog eller VHDL-läge. Men om det här är opraktiskt, är det ganska svårt att skilja mellan SystemVerilog och Verilog-filer, eftersom en fil kan vara både juridisk Verilog och SystemVerilog samtidigt. Faktum är att en tom fil är både en laglig Verilog - och SystemVerilog-fil om jag läser BNF korrekt. Att fördriva mellan en VHDL-fil och en icke-VHDL-fil är nog lättare om det räcker för dig. Jag har inte tittat på det för mycket, men jag tror att det bara handlar om att ta bort alla VHDL-typkommentarer och leta efter granen. problem med verilog-in i när man använder aritmetiskt skift i verilog vode. Hej alla, när jag använder verilog-in i ic5141, verkar det ett sytanx error quotgtgtgt errorquot. min verilog kod har aritmetisk shift gtgtgt adn ltltlt, vilket är den nya egenskapen för verilog-2001. och jag gör verilog-in operation i beteende RTL, är min fråga: hur man fixar detta errorand still: fungerar ic5141 verilog-in funktion verilog2001 verison39s arithemetic shift operator quotgtgtgtquot och quotltltltquot. tack. På 8 13. 1 09. ponderboy ltcqu. yahoo. cngt skrev: Kan någon hjälpa mig tack. Hej. system verilog ques. Finns det en separat nyhetsgrupp för systemverilog rand bit 7: 0 byte0 rand bit 7: 0 byte1 Följande begränsning fungerar: begränsning xyz (byte0 gt39h61 ampamp byte0 lt39h7a) - gt byte1 inuti Men jag vill ändra det till något för detta: begränsning xyz else byte1 inside Är det möjligt att ha ett parametriserat verilogmodulnamn i verilog eller systemverilog Hej, jag försöker skapa verilog-modul som kan stödja parametrerad instans n ame. Jag förstår att signalbredden och andra sådana saker kan parametreras. Men kan vi också parametrera modulens instansnamn I följande kod är jag nyfiken om det finns något sätt SomeDynamicInstanceName kan parametreras också jag kan försöka använda systemverilog om det kan hända här20 Min avsikt är att kunna återanvända verilog gmon modul (generisk verilog-modul) för olika typer av signaler. Men av en anledning behöver jag byta till han SomeDynamicInstanceName. Jag har kontroll o. Verilog simulering av placerade routrar med Verilog XL Hej, jag vill simulera Verilog Netlist av placerad och dirigerad design erhållen från Cadence SoC Encounter. Jag har sdf-filen från SoC Encounter. Jag använder Verilog XL. Jag använde kommandot sdfannotate i mitt testbänk enligt följande initialt start sdfannotate (quot. design. sdfquot, instancename.) Slutet Är det här rätt sätt att göra det Tack i förväg. Hälsningar, Ajay. För hjälp-verilog design av en miniräknare Hej, jag är en ny student med huvudroll i LSI. Nu måste jag designa en räknare med verilog. Det är läxan i en kurs. Jag letar efter lite referenskod om det eftersom jag har mycket lite erfarenhet att programmera i Verilog. Jag skulle vara mycket uppskattad med din hjälp. BTW, de funktioner som jag måste inse är att lägga till, subtrahera, multiplicera, division, N. C, Shift, MC, MS, MR, M, M-. Tack. davidbarby ltdanyangqusuou. waseda. jpgt skrev i meddelande nyheter: 6eb3db6ca7f5485d9d696440776471c6localhost. talkaboutprogramming. gt Hej, gt gt Jag är en ny student med huvud i LSI. Nu måste jag designa en kalkylator gt med verilog. Det är läxan i en kurs. gt Jag letar efter lite referenskod om det eftersom jag har mycket lite GT-upplevelse att programmera i Verilog. Jag skulle vara mycket uppskattad med din gt hjälp. gt BTW, de funktioner jag måste inse är att lägga till, subtrahera, multiplicera, gt-divisionen, N. C, Shift, MC, MS, MR, M, M-. gt gt tack Varför säger du inte hur du tycker att det borde bli kontaktat? Jag är inte besvärlig, jag skulle faktiskt inte veta var du ska börja utan att tänka på det - kanske om du bara gjorde det och sedan publicerade vad du tycker kan det börja sparka en intressant diskussion :) Tack så mycket för ditt svar, men jag tror att jag inte får din mening. Uppriktigt sagt saknar jag erfarenhet om det och letar efter lite hjälp. Kan du snälla ge mig något jag behöver lite. Konvertering Verilog Test Env. till System Verilog Amp Open Vera Hej alla, jag jobbar på ett uppdrag att konvertera gamla BFM och testmiljö som skapats i Verilog till System Verilog och Open Vera. Det inkluderar omvandling av testbänkar och BFM: er som genererar synopsys och användardefinierade klasser och gör en högnivåhanterare av systemverilog som ska användas med Vera. Vänligen hjälp mig med riktlinjer, dokument och tips relaterade till den här uppgiften. Tack Tack på förhand Kedar Hej, Kedar - Du kanske eller kanske inte redan vet det här, men för andra läsare övervakar den här tråden mig vad som redan är allmänt känt: SystemVerilog är fullt bakåtkompatibel med Verilog-2001 och det är vanligtvis inte meningsfullt att spendera tid att konvertera gamla Verilog-2001 BFM testbänkar till den nya Synopsys klassbaserade VMM-stilen av testbänk. För nya testbänkar är ett tillvägagångssätt som detta verkligen meningsfullt. Du måste först förstå SystemVerilog-syntaxen, och sedan kan du fortsätta denna åtgärd genom att läsa Janick Bergeron, et al39s bok, Verifieringsmetodikhandbok för SystemVerilog, publicerad av Springer (ny bok). Du kan anställa några SystemVerilog konsulter för att hjälpa dig att göra jobbet (det gör jag inte själv). Du kanske också vill överväga SystemVerilog för Verifiering träning för att komma igång med det här (jag gör det här :-) Hälsningar - Cliff Cummings Verilog amp SystemVerilog Guru sunburst-design gt Du kan anställa några SystemVerilog konsulter för att hjälpa dig att göra jobben gt gör inte det här m. Där kan jag få eller köpa BSIM3v3-modellfil i Verilog-a eller Verilog-ams I39m som försöker använda språket verilog-a för att konstruera min egen nedbrytningsmodell. bigbag skrev: gt I39m försöker använda Specter Verilog-a till konstruera min egen nedbrytningsmodell. Du kan försöka få det från tiburon tiburon-da eller kontakta berkeley direkt. Där kan jag få eller köpa BSIM3v3 modellfil i Verilog-a eller Verilog-ams 2 I39m försöker implementera min egen nedbrytningsmodell i kadens Spöken använder verilog. Vem kan hjälpa mig Tack så mycket. Du kan hitta en MOS nivå 1 veriloga modell i din Cadence installation tools. lnx86dfIIsamplesartistahdlLibmoslevel1verilogaverilog. va --- Erik zcuimail. ucf. edu (bigbag) skrev i meddelande nyheter: ltf8f9930c.040 1151449.27f4e7c4posting. googlegt. gt I39m försöker implementera min egen nedbrytningsmodell i kadensspektret gt med verilog. Vem kan hjälpa mig Tack så mycket. Se även följande: tools. lnx86dfIIsamplesartistahdlLibmostftverilogave. I-Q FIR-filter som använder verilogverilog-a ger ingen utgång på en kanal. Jag byggt upp en I-Q-demodulator med verilog-a-block. Vid utgången går både I - och Q-banorna genom ett identiskt FIR-filter. Utgången från I-banan ser ut som vad jag förväntar mig, men Q-banan är i princip noll - den har 250 dB lägre förstärkning än I-sökvägen. Jag har provat en massa saker: Jag skapade filtersymbolen och verilog-koden från början i bibliotekshanteraren. Jag tog bort all den sammanställda AHDL-koden som tillhör filtren och tvingade den att omkompilera. Jag skapade en andra version av filtret från början. Jag får samma resultat oavsett vad. Om jag hakar I-kanalen upp till. gör 39slow39 beräkningar i verilog Om du använder en kontinuerlig eller icke-blockering uppgift i Verilog och det högra uttrycket är något som i en riktig enhet tar tid att bli giltig efter att ingångarna blir giltiga, hur ser du till att utmatningen är giltig när du vill använda den Till exempel: input 1000: 0 megaparitet tilldela foo megaparitet alltid (posedge clk) megaparitet giltig på denna clk sparade paritet lt foo när är detta giltigt Vad om kaskad xor-kedjan är så långsam it39s mer än en clk-period Mer än 20 Om du antar att det är långsammare än det är (väntar på ett fast antal klockor) gör du det. konfiguration för ett blandat läge VHDL-verilog lang Hej allt Mitt problem är att jag väljer att välja en VHDL-fil som är instanserad inom verilog via VHDL-konfiguration För att summera: Jag har en hierarki: quottop: vhdl - verilog - Verlog - vhdl: bottomquot Hur man skriver en vhdl-konfiguration för att välja filen för Rakesh YC-försökets nedersta instantiering. beräkna medelvärdet Hur får man genomsnittet av fler fält. Vilket tecken att placera mellan fälten Till exempel: medelvärde (age1ampage2) Signalförstärkaren är inte korrekt. Vilket tecken är. Laura. quotLaura Eekelsquot ltlaura. eekelsxx. yygt skrev i meddelande nyheter: 3fce13ec0214e4fe514cnews. xs4all. nl. gt Hur får man genomsnittet av fler fält. gt Vilket tecken att placera mellan fälten gt Till exempel: medelvärde (age1ampage2) gt Teckenförstärkaren är inte korrekt. Vilket tecken är. gt gt Laura. Gem (Field1 Field2 Field2) - Bradley Software Developer hrsystems. au Ett kristen svar pastornet. auresponse Tack för svaret, men jag försökte redan det. och det fungerar inte. Gem (field1field2) fält17field28 ger resultatet 78 och inte genomsnittet. Har du några andra förslag Laura quotBradleyquot ltbradleyREMOVETHIScomcen. augt skrev i meddelande nyheter: jtszb.38208aT.14986news-server. bigpond. au. gt quotaura eekelsquot ltlaura. eekelsxx. yygt skrev i meddelande gt news: 3fce13ec0214e4fe514cnews. xs4all. nl. gt gt Hur får man genomsnittet av fler fält. gt gt Vilket tecken att placera mellan fälten gt gt Till exempel: medelvärde (age1ampage2) gt gt Teckenförstärkaren är inte korrekt. Vilket tecken är. gt gt gt Laura. gt gt Avg (Field1 Field2 Field2) gt gt - gt Bradley gt Software Developer hrs. verilog stil Hej alla, kan någon ge mig lite adive om följande kod. reg A reg B wire och tilldela C och ampamp (A B) (1) logisk OCH tilldela D och ampere (A B) (2) bitvis och vilken som är bättre. (1) eller (2). Tack för något förslag Essen skrev: gt Hej alla, gt gt Kan någon ge mig lite adive om följande kod. gt gt A gt reg B gt wire gt gt tilldela C och ampamp (A B) (1) logisk OCH gt tilldela D och amp (A B) (2) bitvis och gt gt vilken är bättre. (1) eller (2). gt gt Tack för något förslag Hej I det här fallet är båda korrekta. Eftersom A, B och en anses vara booleska det är. singelbit. Om du går med flera bitoperander, hittar du en skillnad. Tack och hälsningar karthikeyan TooMuch Semiconductor Solutions, Bangalore. strängar i verilog Hej jag hade ett problem med strängar i verilog. Jag har en JTAG-statlig maskin och en testbänk som kör den. Jag flytta genom olika JTAG-stater som refereras av 4bit binära som TlR 439b0000 RTI 439b0001. I min rtl hade jag något liknande, reg4: 0 presstate definiera TLR 439b0000 definiera RTI 439b0001. reg4: 0 presstate reg4: 0 nextstate alltid (posedge tclk). Presstate lt nextstate När jag simulerar det och ser vågorna på vågformfönstret blir det verkligen svårt att avkoda staterna genom att titta på siffror, så jag tänkte om jag kan använda tecken för att representera olika JTAG-stater. Jag hade något liknande detta, reg 38: 0 presstate Men jag hittade ascii värden för olika stater representerade på vågformen. Känner ni till orsaken. Så hur kan jag representera strängar istället för siffror jag vet att jag kan använda skärm men jag vill att mina strängar ska dyka upp i mina vågformar. Tack Rik rik skrev: gt gt Men jag hittade ascii värden för olika stater representerade på gt vågformen. Känner ni till orsaken. Därför är strängar representerade i Verilog (och programmeringsspråk i allmänhet). gt Jag vet att jag kan använda skärmen men jag vill att mina strängar ska visas i min gt-vågform. Detta är inte ett problem med Verilog. Det här är ett problem med din vågformsvisare. Om det har möjlighet att visa. Ja, jag har redan filterkoefficienterna. Det är lätt att generera om du har stoppbandet och passera bandspecifikationerna med dig. En ytterligare fråga har du någon aning om hur kan jag implementera FIR-filter i kaskad. Som antar att jag har ingången x (n) och jag vill ha en utgång y (n) så skulle min övergripande överföringsfunktion vara ett block med 3 små FIR-filterblock dvs (H (z) Y (z) X (z) A z)). Mitt verkliga problem skulle vara hur man sammanfogar alla dessa tre filter tillsammans i kaskad för att få utmatningen y (n). Ge mig bara en grov idé eller pseudokod eller om du har koden, klistra in den ordentligt. ndash D X Feb 21 13 på 9:11 Dina alternativ är i grunden (1) designa ett enda filter för överföringsfunktionen, eller (2) ring upp convolution-funktionen flera gånger en gång för varje filter i kaskaden. Såvitt jag kan komma ihåg, (1) visar sig vara en konvertering (för varje par filter kombinerat), men jag måste gå tillbaka till mina läroböcker för att vara säker. ndash Steve314 Feb 21 13 kl 9:17 För att kombinera flera filter: Börja med enhetsimpuls (en signal med en 1 i den första positionen och 0 överallt). Applicera det första filtret. Applicera det andra filtret. Fortsätt tills alla filter är applicerade. Resultatet visar hur de kombinerade filtren sammanfaller enhetsimpulsen (förutsatt att matrisen är tillräckligt lång för att ingen data förlorades), så värdena i det är koefficienterna för ett filter som är sammansättningen av de andra filtren. Här är provkod: Medelfilter, eller medelfilter Kategori. Digital signal - och bildbehandling (DSP och DIP) mjukvaruutveckling. Abstrakt. Artikeln är en praktisk guide för medelfilter, eller genomsnittlig filterförståelse och implementering. Artikeln innehåller teori, C-källkod, programmeringsinstruktioner och provapplikation. 1. Inledning till medelfilter, eller medelfilter Medelfilter. eller medelfilter är windowed-filter av linjär klass, som släpper ut signalen (bild). Filtret fungerar som lågpass en. Den grundläggande tanken bakom filteret är att någon del av signalen (bilden) tar ett medelvärde över hela sitt grannskap. För att förstå hur det görs i praktiken, låt oss börja med fönsteridee. 2. Filterfönster eller mask Låt oss föreställa oss att du borde läsa ett brev och vad du ser i text begränsad av hål i speciell stencil så här. Så, resultatet av behandlingen är ljudet t. Ok, låt oss läsa brevet igen, men med hjälp av en annan stencil: Nu är resultatet av att läsa t ljud 240. Låt oss göra det tredje försöket: Nu läser du bokstaven t som ljud 952. Vad händer här Att säga det I matematiskt språk gör du en operation (läsning) över elementet (bokstav t). Och resultatet (ljudet) beror på elementets grannskap (bokstäver bredvid t). Och den stencilen, som hjälper till att hämta elementet grannskap, är fönster Ja, fönstret är bara en stencil eller ett mönster, genom vilket du väljer elementet grannskapet 0151 en uppsättning av element runt den givna 0151 för att hjälpa dig att fatta beslut. Ett annat namn för filterfönstret är mask 0151 mask är en stencil, som döljer element vi inte uppmärksammar på. I vårt exempel är det element vi arbetar på placerat längst till vänster i fönstret, men i praktiken är dess vanliga läge mitt i fönstret. Låt oss se några fönster exempel. I en dimension. Fig. 4. Fönster eller mask av storlek 5 i 1D. I två dimensioner. Fig. 5. Fönster eller mask av storlek 3times3 i 2D. I tre dimensioner. Tänk på att bygga. Och nu mdash om rum i den byggnaden. Rummet är som 3D-fönster, vilket skär ner en del delrum från hela byggnaden. Du kan hitta 3D-fönster i volym (voxel) bildbehandling. 3. Förstå genomsnittliga filter Nu får vi se hur man ldquotake ett genomsnitt över element neighborhoodredquo. Formeln är enkla 0151 sammanfatta element och dela summan av antalet element. Låt oss exempelvis beräkna ett medelvärde för fallet, som visas i fig. 7. Fig. 7. Med ett medelvärde. Och det är allt. Ja, vi har bara filtrerat 1D-signal med medelfilter. Låt oss göra CV och skriva ned steg-för-steg-instruktioner för bearbetning med medelfilter. Medelfilter eller medelfilteralgoritm: Lägg ett fönster över elementet Ta en genomsnittlig summa upp för 0151 och dela summan av antalet element. Nu när vi har algoritmen är det dags att skriva lite kod mdash låt oss komma ner till programmering. 4. 1D-medelfilterprogrammering I detta avsnitt utvecklar vi 1D-medelfilter med fönster av storlek 5. Låt oss ha 1D-signal med längd N som ingång. Det första steget är att placera fönstret 0151 så gör vi det genom att ändra indexet på det ledande elementet: Var uppmärksam på att vi börjar med det tredje elementet och slutar med det sista men två. Problemet är att vi inte kan börja med det första elementet, eftersom det här är den vänstra delen av filterfönstret tomt. Vi kommer att diskutera nedan, hur man löser det problemet. Det andra steget tar medeltalet ok: Låt oss nu skriva ner algoritmen som funktion: Typelementet kan definieras som: 5. Behandla kanter För alla fönsterfilter finns det något problem. Det är kantbehandling. Om du placerar fönstret över första (sista) elementet kommer den vänstra (högra) delen av fönstret att vara tomt. För att fylla gapet bör signalen utökas. För medelfilter är det en bra idé att förlänga signalen eller bilden symmetriskt så här: Så innan signalet skickas till vår genomsnittliga filterfunktion, ska signalen förlängas. Låt oss skriva ner omslaget, vilket gör alla förberedelser. Som du kan se tar vår kod hänsyn till några praktiska problem. Först och främst kontrollerar vi våra ingångsparametrar 0151-signalen bör inte vara NULL, och signallängden ska vara positiv: Andra steg 0151 kontrollerar vi fall N1. Det här fallet är speciellt, för att bygga tillägg behöver vi minst två delar. För signalen med 1 elementlängd är resultatet själva signalen. Också uppmärksamma, vårt genomsnittliga filter fungerar på plats, om utgångsparameterresultatet är NULL. Låt oss nu tilldela minne för signalförlängning. Och kolla minnesallokering. Tråd: DC-offsetavlägsnande med FPGA Jag är ny för gränssnitt FPGA med DSP-koncept. Jag har ADC, och sedan har jag deserialiserare efter dem för att parallellisera data. Så ska jag tillämpa DC-avlägsnandet efter deserialiseraren eller före det Kan du styra DC-offset i den analoga domänen Om så är fallet är det bättre att eliminera det där, då kan du använda hela ADC-dynamiken. Var kommer denna DC från? Om din ADC är AC-kopplad, då DC kan bero på en dålig ingångsspänning, som vissa ADC-enheter ger kontroller för att eliminera. Om din ADC är DC-kopplad måste du bestämma varför dess DC-kopplade och bestämma om du vill byta till AC-koppling för din nuvarande applikation. Dessutom behöver jag vägledning angående DC-avlägsnandet. Jag har studerat om det men fick inget som en slutgiltig slutsats om huruvida man ska använda en HPF eller LPF och sedan en subtraktor. Vad är signalen du försöker mäta Om du digitalt demodulerar din signal och sedan filtrerar den, är det ganska möjligt att ditt digitala filter är tillräckligt för att avlägsna DC. Om detta skulle vara tillräckligt beror det på hur mycket DC som kommer in i ditt system, det vill säga om du har en stor DC-spik, kan det hända att ditt filter stoppband avvisande måste vara mycket högt för att ta bort det. Du kan också använda de metoder som Kaz föreslår i den tråd han refererar till, eller en kombination av DC-borttagningsfilter, följt av digital demodulation och ytterligare filtrering. Men om jag har rätt, måste jag simulera den här modellen med matlab för att i det närmaste räkna ut grunderna om hur man rör medeltalsfilterverk. Simulering med MATLAB är ett bra tillvägagångssätt. Skivorna har ett exempel på ett glidande medelfilter och ett FIR-filter. Huvudskillnaden mellan ett glidande medelfilter och ett FIR-filter är (potentiellt) en skalfaktor. Till exempel är ett 4-punkts glidande medelfilter bara genomsnittet av 4-prov medan ett 4-koefficient FIR-filter är If hn 14, då är de två desamma. Det finns emellertid verkligen inget behov av att ha 14 för varje koefficient, eftersom de alla kan vara 1, och den slutliga summan kan högerskiftas med 2 bitar för att utföra delningen med 4. Detta ger dig väsentligen tillbaka till det glidande medlet ekvation. Ett glidande medelfilter är ett ganska enkelt filter. Det kanske inte är lämpligt för din ansökan, men det hjälper dig att förstå filter, så fortsätt och simulera det i både MATLAB och Modelsim.
No comments:
Post a Comment