Tabla de contenido:
- Paso 1: VHDL y Modelsim
- Paso 2: Código VHDL para el diseño y el banco de pruebas
- Paso 3: archivos adjuntos
- Paso 4: Núcleo IP Mini-Cordic - 16 bits
Video: Algoritmo Cordic usando VHDL: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Por AmCoder https://www.linkedin.com/in/mitu Siga más por el autor:
Acerca de: Mitu Raj - Solo un aficionado y aprendiz - Diseñador de chips - Desarrollador de software - Entusiasta de la física y las matemáticas Más sobre AmCoder »
## Este es el enlace más popular en Google para la implementación VHDL de CORDIC ALGORITHM para generar ondas sinusoidales y coseno ## En la actualidad, existen muchos algoritmos eficientes de hardware, pero estos no son bien conocidos debido al dominio de los sistemas de software sobre los muchos años. CORDIC es un algoritmo de este tipo que no es más que un conjunto de lógicas de cambio y adición que se utilizan para calcular una amplia gama de funciones, incluidas ciertas funciones trigonométricas, hiperbólicas, lineales y logarítmicas. Este es el algoritmo que se usa en las calculadoras, etc. Por lo tanto, con solo usar simples cambiadores y sumadores, podemos diseñar un hardware con menos complejidad pero potencia de DSP usando un algoritmo cordico. Por lo tanto, se puede diseñar como un diseño RTL desnudo en VHDL o Verilog sin usar unidades de punto flotante dedicadas o IP matemáticas complejas.
Paso 1: VHDL y Modelsim
Aquí, el algoritmo cordic se implementa usando VHDL para generar una onda sinusoidal y una onda cose. Puede generar seno y coseno de ángulo de entrada con gran precisión. El código se puede sintetizar en FPGA. Modelsim se utiliza para simular el diseño y el banco de pruebas.
Paso 2: Código VHDL para el diseño y el banco de pruebas
La técnica de escala binaria se utiliza para representar números de punto flotante.
Consulte los documentos adjuntos antes de codificar.
Ir a través de simulando cordic_v4.vhd - El diseño -La entrada es el ángulo en 32 bits + bit de signo; Puede procesar cualquier ángulo de 0 a +/- 360 grados con una precisión de entrada de 0,000000000233 grados. Cuando se da entrada -> MSB es el bit de signo y los 32 bits restantes representan la magnitud.-La salida del diseño es su valor seno y cos en 16 bits + bit de signo. Es decir; con precisión 0.00001526. Tenga en cuenta que la salida se muestra en forma complementaria de 2 si el valor de seno o cos respectivo es negativo. Simulando testb.vhd - Banco de pruebas para el diseño (1) Ingrese ángulos y tire reset = '0'. Después de dos pasos de simulación, reinicie a '1' y "ejecutar todo". (2) En la ventana de simulación, establezca la base de las señales sin y cos como decimal y formato> Analógico (automático). (3) Reduzca el zoom para ver la forma de onda. adecuadamente.
Paso 3: archivos adjuntos
(1) cordic_v4.vhd - Diseño. (2) testb.vhd - Banco de pruebas para el diseño.
(3) Documento sobre cómo forzar entradas de ángulos y convertir los resultados binarios.
Actualización: ESTOS ARCHIVOS SON OBSELETOS Y NO SE SUMINISTRAN MÁS. UTILICE LOS ARCHIVOS DEL SIGUIENTE PASO
Paso 4: Núcleo IP Mini-Cordic - 16 bits
La limitación de la implementación anterior es: baja frecuencia de reloj de funcionamiento debido a que se realizan cálculos en un solo ciclo de reloj. Mini-Cordic IP Core - 16 bits
- Rutas críticas distribuidas en múltiples ciclos para mejorar el rendimiento.- Más rápido - Diseño probado FPGA sintetizado hasta un reloj de 100 Mhz.- Más área optimizada en HDL, hardware menor.- Se agregan señales de estado Load y Done.- El único inconveniente es una resolución menor en comparación con el el anterior.
Entradas de ángulo de 0 a 360 grados completamente automatizadas
Archivos adjuntos: 1) archivo vhdl principal mini cordic 2) banco de pruebas mini cordic 3) manual Mini Cordic IP Core 4) Documento sobre cómo forzar ángulos y convertir resultados
Para cualquier consulta, no dude en ponerse en contacto conmigo:
Mitu Raj
sígueme:
correo: [email protected]
### Descargas totales: 325 hasta el 01-05-2021 ###
### Última modificación del código: julio-07-2020 ###
Recomendado:
Robot de equilibrio automático - Algoritmo de control PID: 3 pasos
Robot de autoequilibrio - Algoritmo de control PID: Este proyecto fue concebido porque estaba interesado en aprender más sobre los algoritmos de control y cómo implementar de manera efectiva bucles PID funcionales. El proyecto aún se encuentra en la fase de desarrollo ya que aún no se ha agregado un módulo Bluetooth que al
Juego de mesa Inteligencia artificial: el algoritmo Minimax: 8 pasos
Juego de mesa Inteligencia artificial: el algoritmo Minimax: ¿Alguna vez te has preguntado cómo se fabrican las computadoras contra las que juegas en ajedrez o damas? Bueno, no busque más, este Instructable le mostrará cómo hacer una inteligencia artificial (IA) simple pero efectiva utilizando el algoritmo Minimax. Al usar th
Kit Ciencia Y Arte: Algoritmo Genético (Vida Artificial): 6 Pasos
Kit Ciencia Y Arte: Algoritmo Genético (Vida Artificial): Los algoritmos genéticos son probablemente una de las cosas más interesantes de la computación (en mi opinión). B á sicamente se toma la idea de evoluci ó n de la biolog í a, y se aplica a un algoritmo en u
Robot de equilibrio automático con algoritmo PID (STM MC): 9 pasos
Robot de autoequilibrio con algoritmo PID (STM MC): Recientemente se ha trabajado mucho en el autoequilibrio de objetos. El concepto de autoequilibrio comenzó con el equilibrio del péndulo invertido. Este concepto se extendió también al diseño de aeronaves. En este proyecto, hemos diseñado un pequeño mod
Tic Tac Toe en Arduino con AI (algoritmo Minimax): 3 pasos
Tic Tac Toe en Arduino con AI (Algoritmo Minimax): En este Instructable, le mostraré cómo construir un juego Tic Tac Toe con una AI usando un Arduino. Puedes jugar contra el Arduino o ver cómo el Arduino juega contra sí mismo. Estoy usando un algoritmo llamado " algoritmo minimax "