Estoy tratando de probar un componente VHDL, pero parece que no puedo obtener este único puerto para darme ningún comportamiento. Intenté configurar el puerto para todo desde '1' hasta '-', pero aún aparece como 'U' en la simulación. Cualquier sugerencia, ¿qué podría estar mal?VHDL: cómo establecer un valor en un puerto inout?
5
A
Respuesta
8
Para el puerto Inout (por ejemplo, en la memoria RAM):
....
port(
data :inout std_logic_vector (DATA_WIDTH-1 downto 0);
....
-- Memory Write Block
-- Write Operation : When we = 1, cs = 1
MEM_WRITE: process (address, cs, we, data, address_1, cs_1, we_1, data_1) begin
if (cs = '1' and we = '1') then
mem(conv_integer(address)) <= data;
end if;
end process;
-- Tri-State Buffer control
data <= data_out when (cs = '1' and oe = '1' and we = '0') else (others=>'Z');
-- Memory Read Block
MEM_READ: process (address, cs, we, oe, mem) begin
if (cs = '1' and we = '0' and oe = '1') then
data_out <= mem(conv_integer(address));
else
data_out <= (others=>'0');
end if;
end process;
se asignan los datos de lectura y escritura para inout con una condición. Cuando se leen los datos, es impulsado por otro módulo. Cuando escribe, es dirigido por interno.
- Cuando se maneja por otro módulo (como en la señal), los datos se resuelven entre todos 'Z' y un vector "0101010" por ejemplo. La información será manejada como "0101010".
- En el otro caso: el otro módulo debe conducir los datos por todos "Z" y luego la señal interna puede poner su valor a los datos.
6
1
He tratado de establecer el puerto para todo, desde '1' a '-', pero todavía hará como una 'U' en la simulación.
Además de la buena respuesta en la asignación/lectura de puertos, el texto citado puede estar relacionado con el puerto asignado en dos lugares separados, por lo que se resuelve como 'U'.
Cuestiones relacionadas
- 1. ¿Cómo "cortar" un std_logic_vector en VHDL?
- 2. Cómo establecer un valor datetimepicker a DateTime.MaxValue
- 3. Cómo establecer un valor constante decimal
- 4. ¿Establecer el valor predeterminado en un DataContract?
- 5. Establecer git diff en un valor predeterminado
- 6. "In/out/inout" en un valor de parámetro de interfaz AIDL?
- 7. Cómo declarar un resultado con ceros múltiples en VHDL
- 8. cómo establecer un valor para un lapso usando jQuery
- 9. ¿Crear un backend VHDL para LLVM?
- 10. Cómo establecer u obtener un valor de cookie en Django
- 11. cómo establecer un valor de mapa en velocidad
- 12. ¿Cómo establecer el valor alfa para dibujable en un StateListDrawable?
- 13. Cómo establecer un valor en NULL cuando se usa Zend_Db
- 14. Cómo establecer correctamente un valor entero en NSDictionary?
- 15. ¿Cómo encontrar un puerto disponible?
- 16. VHDL STD_LOGIC_VECTOR Valores comodín
- 17. Programando VHDL en Linux?
- 18. REDIRECCIONE un puerto en ip6tables
- 19. Cómo olfatear un puerto USB en Windows?
- 20. ¿Cómo restablezco un puerto en MacPorts?
- 21. Establecer un valor predeterminado para una propiedad
- 22. ¿Cómo establecer un píxel a un valor en un objeto cv :: Mat?
- 23. ¿Cómo establecer un rango de elementos en un vector stl a un valor particular?
- 24. Encuentra un puerto libre
- 25. Bits de concatenación en VHDL
- 26. iphone SDK: ¿Cómo establecer el valor inicial de un UIPickerView?
- 27. ¿Cómo definir un valor predeterminado para establecer una costumbre Django
- 28. Cómo establecer un valor de registro binario (REG_BINARY) con PowerShell?
- 29. ¿Cómo establecer un valor predeterminado para la lista de elementos?
- 30. Cómo establecer un valor auto_increment inicial utilizando doctrine2
estableciéndolo explícitamente en Z hizo que el puerto me diera los datos, pero ahora parece que no puedo obtener las señales internas para leer desde el puerto :( – Tore