Modelsim: Forzar cadena

0

Mi VHDL-testbench carga un archivo de texto. Quiero poder establecer el nombre de archivo desde el exterior. Como uso ModelSim (edición inicial de Altera) para simular mi diseño, debería ser posible establecer la cadena que contiene el nombre de archivo sobre un comando de fuerza o similar.

¿Cómo puedo "forzar" una cadena VHDL a un cierto valor? ¿Cuál es la sintaxis correcta?

library ieee;
    use ieee.std_logic_1164.all;

    use std.textio.all;
    use work.txt_util.all;

entity dpu_tb is
end dpu_tb;

architecture Behavioral of dpu_tb is
    signal clk: std_logic;
    signal simulation_finished: std_logic;
    signal simulation_input_file: string(1 to 100); --<-- Set value during simulation
    signal rst: std_logic;

    signal sample: std_logic_vector(12 downto 0);
    signal valid: std_logic;

begin
    ....

Lo que probé y no funcioné (y diferentes combinaciones):

force -deposit simulation_input_file "/tmp/test"

¿O hay un enfoque diferente para elegir el archivo?

    
pregunta Botnic

1 respuesta

2

Si abre el manual de referencia de comandos, vaya a 'Ayuda > Documentación - PDF Bookcase ', puede encontrar la sintaxis completa de este comando.

Sería útil si incluyera el mensaje de error y / o el problema que vio, en lugar de simplemente "no funcionó", pero en su caso, parece que ha olvidado incluir la ruta completa la señal que está conduciendo. simulation_input_file debería ser /dpu_tb/simulation_input_file . Además, para forzar una cadena, su valor de fuerza debe tener la misma longitud que la cadena objetivo. Si esto no es conveniente, puede utilizar el comando TCL format , por ejemplo:

force /dpu_tb/simulation_input_file [format "%-100s" /tmp/test]

Puede buscar el comando format en la documentación en línea de TCL para comprender cómo funciona esto.

    
respondido por el scary_jeff

Lea otras preguntas en las etiquetas