Étape 8 FPGA séquenceur et synthétiseur (2 / 6 étapes)

Étape 2: Composants du circuit

Concevoir les composants :

Afin de mettre en œuvre un synthétiseur sur la carte Nexys 2 FPGA, plusieurs éléments doivent être conçues. Commençant par les sorties, modules devront gérer la mise en marche de la LED et la sortie des fonctions d’onde carrées à l’orateur. Il faudra également modules debounce entrées et générer une impulsion d’horloge unique à partir d’un bouton. Enfin, les modules tels que compteurs, tongs et multiplexeurs seront nécessaires pour gérer la logique restante de stocker des notes et la lecture des séquences correctement.

La liste suivante contient une brève description de ce que fait chaque composant dans ce projet, comment chaque composant est utilisé et comment implémenter ces composants en VHDL :

Bouton Activer/désactiver : Dans le cas de la touche play/pause, nous voulons basculer entre deux États exactement une fois lorsque le bouton est enfoncé. Pour ce faire, nous utilisons une machine d’état fini (FSM). De cette façon, après la transition entre les États une fois, le circuit de bouton bascule ne permettra pas une autre transition d’état de se produire tant que le bouton a été libéré et puis appuie à nouveau sur. Un schéma représentant cette FSM est donné ci-dessus.

La machine d’état fini contient deux États pour chaque sortie possible. Commençant en haut du diagramme FSM, le circuit est dans l’état de pause. Dès que le bouton est enfoncé, le circuit est versés à l’état de jouer. Il restera dans ce premier État de jouer jusqu'à ce que le bouton est relâché. Maintenant, le circuit est encore à l’état de jouer, mais il est prêt pour le bouton à presser à nouveau faire la transition vers l’état de pause. De même, le circuit attendra une fois de plus le bouton être libéré avant qu’il soit prêt à passer à l’état de jouer.

Diviseur d’horloge : Le circuit diviseur d’horloge convertit simplement la fréquence de 50 MHz du Nexys 2 à une fréquence beaucoup plus faible. Cela sert à régler le BPM (battements par minute) du synthétiseur. Dans ce projet, nous utilisons un module VHDL, écrit par Bryan Mealy de California Polytechnic State University, San Luis Obispo.

Counter : Un compteur affiche simplement un nombre binaire. Lors de son entrée est élevée, cela augmente ce nombre par 1 sur le front montant d’horloge. Les compteurs utilisés dans ce circuit utilise T tongs pour stocker un numéro 3 bits. Chaque flip-flop représente un bit étant stocké. Le flip-flop, ce qui représente le bit le moins significatif fait alterner chaque fois que le compteur est censé pour augmenter. Les autres bascules vont basculer lorsque tous les bits en dessous d’eux sont égaux à un. Ce comportement sera également faire en sorte lorsque le compteur atteint la plus haute 111(binary) numéro, possible, il va retourner à zéro alors incrémenté suivant.

Dans ce projet, un compteur est utilisé pour suivre le rythme actuel afin que l’orateur sait quel ton de jouer, et donc la bonne LED peut être allumée. Un compteur est également utilisé pour suivre le ton actuel qui peut être entré par l’utilisateur.

Debouncer : Les boutons poussoirs sur la Nexys 2 FPGA board ne sont pas parfaits. Idéalement, lorsque vous appuyez sur les contacts seraient toucher une seule fois, puis rester ensemble jusqu'à ce que le bouton est relâché. En réalité, les contacts ont tendance à « rebondir » plusieurs fois, en ce que lorsque vous appuyez sur le bouton contacts viendra dans et hors de contact plusieurs fois avant de le coller. En ce qui concerne notre synthétiseur, cela pourrait conduire à un bouton play/pause qui passe entre les deux États plusieurs fois lorsque le bouton est enfoncé et n’est pas garanti pour atterrir sur la bonne paire. Pour contrer cela, un circuit debounce attendra pendant un certain laps de temps pour l’entrée à « s’installer ».

Dans ce projet, nous avons utilisé un module VHDL rédigé par Scott Larson de Digi-key, publié initialement sur le wiki de Digi-key EE.

Générateur d’impulsion : Les compteurs utilisés dans ce projet seront incrémenté avec une certaine fréquence d’horloge tant elles sont activées. Pour certaines fonctions, telles que l’incrémentation la fréquence lorsque vous appuyez sur le bouton pour changer le ton actuel, nous pourrions vouloir incrémenter un compteur qu’une seule fois à chaque pression de touche. Cela consiste à tirer une entrée et convertissant en une impulsion d’une durée de cycle d’horloge exactement. Le circuit de générateur d’impulsion se répétera. Quand son entrée va haut, sa production va élevée pour cycle d’horloge exactement. Ceci est accompli en garder la trace de l’entrée actuelle pour un front montant donné d’horloge, ainsi que l’entrée précédente pour le dernier front montant d’horloge. Dans le cas où l’intensité absorbée est élevée et l’entrée précédente est faible, le rendement est élevé. Dans le cas contraire, la sortie est faible. En VHDL, ceci est accompli en utilisant un modèle comportemental. Un bloc de processus vérifie les valeurs de valeur d’entrée incr et l' entrée précédente incr_prev sur le front montant de l’horloge. Si incr figure parmi de incr_prev est égale à zéro, la sortie q a la valeur on. Dans le cas contraire, q est définie à zéro. Enfin, incr_prev obtient la valeur de incr.

sseg_dec : Ce circuit prend un fichier binaire avec jusqu'à huit bits d’entrée et l’affiche comme un nombre décimal sur l’afficheur 7 segments de Nexys2. Dans ce projet, nous utilisons un module VHDL, écrit par Bryan Mealy de California Polytechnic State University, San Luis Obispo.

Carré générateur d’ondes : Ce composant génère un signal carré, basé sur une entrée de 3 bits. Il le fait en divisant le signal d’horloge d’entrée par un nombre spécifique d’atteindre la fréquence désirée. La sortie est alors activée ou désactivée selon cette fréquence. Il y a sept fréquences prédéterminées, issus de la gamme pentatonique, qui représente les notes de A4 à C6. Les fréquences pour ces tons vont de 440 Hz à 1046,5 Hz. Si l’entrée est 000(binary), aucun signal carré n’est joué.

Articles Liés

Déclencher le câble pour synthétiseur Moog

Déclencher le câble pour synthétiseur Moog

Cette semaine j'ai eu un séquenceur modulaire, ce qui fait normalement partie d'un synthétiseur modulaire. J'ai un synthétiseur MiniMoog Voyager qui contient de nombreux éléments qu'un synthé modulaire inclurait normalement, alors j'ai voulu brancher
Conception et construction d’un synthétiseur avec Meeblip et Arduino, ajouté des vidéos !

Conception et construction d’un synthétiseur avec Meeblip et Arduino, ajouté des vidéos !

Pour mon stage chez Create Digital Music/Meeblip j'ai créé un amusant petit synthétiseur. Cette chose est censée être plus souples que les autre synthétiseur en le rendant complètement indépendant ; C'est une batterie a son propre amplificateur/encei
Ajout d’entrées de CV pour le synthétiseur granulaire Auduino

Ajout d’entrées de CV pour le synthétiseur granulaire Auduino

Quand je suis arrivé dans l'Arduino, je suis allé chercher des projets audio. Une des premières choses que j'ai construit était synthétiseur granulaire de Auduino des TobaTobias. J'ai été tellement impressionné que j'ai construit une unité permanente
Conception et construction d’un synthétiseur « acoustique »

Conception et construction d’un synthétiseur « acoustique »

pour mon stage chez Create Digital Music/Meeblip j'ai créé un certain plaisir petit synthétiseur. Cette chose est censée être plus souples que les autre synthétiseur en le rendant complètement indépendant ; C'est une batterie a son propre amplificate
Transformer votre Arduino en un synthétiseur wavetable de 4 voix avec seulement quelques composants...

Transformer votre Arduino en un synthétiseur wavetable de 4 voix avec seulement quelques composants...

Des projets de synthétiseur multiples ont été réalisées pour l'Arduino, mais peu ont été capables d'utiliser la pleine puissance du processeur de l'Arduino. DZL de GeekPhysical écrivit un synthétiseur wavetable 4 voix qui est l'un des plus avancés sy
Synthétiseur de temporisateur NE555

Synthétiseur de temporisateur NE555

Bonjour, je vous vois WAN ' t de savoir comment faire un NE555 minuterie basée 3 synthétiseur d'octave qui s'inscrit dans une boîte de conserve. Eh bien, vous êtes venu au bon endroit:)Pour ce projet, vous aurez besoin :1. 36 boutons tactiles (les bo
Synthétiseur MIDI programmable avec Intel Edison et Csound

Synthétiseur MIDI programmable avec Intel Edison et Csound

Un contrôleur MIDI est comme le clavier de l'ordinateur, mais au lieu d'envoyer des caractères à l'ordinateur, il envoyer des notes (et beaucoup de plus d'informations sur comment se joue la note). Vous pouvez en apprendre plus sur contrôleurs MIDI i
Synthétiseur : Un clavier UI avec sortie Audio

Synthétiseur : Un clavier UI avec sortie Audio

Nous avons construit un clavier UI avec cinq modes de synthèse tout en Javascript, pour montrer la puissance de l'aide des broches de matériel de sortie audio de Kinoma Create. Vous pouvez télécharger le projet open source maintenant pour s'exécuter
Contrôleur de synthétiseur humain/Game

Contrôleur de synthétiseur humain/Game

IntroductionVous pouvez apprendre comment jouer un solo de clavier en donnant à vos amis un Saluez ! Vous pouvez devenir un champion Tetromino ou écureuil en donnant à vos amis un h.o.t., trop ! Suivez les instructions ci-dessous pour en faire un con
Maître de l’accordéon - un synthétiseur de musique python/arduino

Maître de l’accordéon - un synthétiseur de musique python/arduino

Ce projet a été créé par une équipe de trois étudiants de l'Université de Pennsylvanie à MHacks 2014 Detroit (un week-end Hackathon). L'objectif de ce projet est de créer un synthétiseur de musique qui génère des signaux basé sur les gestes de l'util
Synthétiseur génial

Synthétiseur génial

Alors, j'ai fait un synthétiseur de consonance cool sur mon portable. Je vais mettre un échantillon vidéo vers le haut à ce sujet bientôt. Pour l'instant, voici un enregistrement audio. Dans l'ordre, il va la lettre à Élise, Moonlight Sonata, Canon d
Le synthétiseur Arduino

Le synthétiseur Arduino

L'Arduino est en mesure de sortie son par une bibliothèque qui a été développée, appelée la Bibliothèque de ton.En créant une interface et un programme qui peut appeler certaines valeurs pour être sortie d'une sortie audio, le synthétiseur de l'Ardui
Synthétiseur MIDI SoundFont avec Intel Edison et Fluidsynth

Synthétiseur MIDI SoundFont avec Intel Edison et Fluidsynth

Sur ce Instructable, je vais montrer comment construire votre propre synthétiseur MIDI SoundFont utilisant Intel Edison et Fluidsynth.En suivant les étapes décrites ici, vous aurez un synthétiseur qui peut jouer presque n'importe quel SoundFont dispo
Synthétiseur numérique VRA8-P pour Arduino Uno

Synthétiseur numérique VRA8-P pour Arduino Uno

Commercialisée par ISGK Instrumentshttps://github.com/risgk/Digital-Synth-vra8-pConcept3 voix polyphone Pseudo pour Arduino UnoCaractéristiques3 voix Pseudo polyphone (Paraphonic synthétiseur), Module de sons MIDISerial MIDI en (38400 bits/s), le tau