Перейти к содержанию
    

lennox

Участник
  • Постов

    77
  • Зарегистрирован

Сообщения, опубликованные lennox


  1. Правильно ли для хранения слов инициализации пользоваться таким способом ?

    а почему бы и нет? я, например, так и делаю иногда

    reg [7:0] MEM_ADDR[0:19];
    
    initial
    begin
    MEM_ADDR[19] = 8'h20; //SWITCH PROGRAMMING
    MEM_ADDR[18] = 8'h06; //CLOCK SYNTHESIZER PROGRAMMING
    ...
    end
    
    ...
    
    always @(posedge i_clk)
    begin
      ...
      TXD_DEVADDR <= MEM_DEVADDR[I2C_CNT];
      TXD_ADDR    <= MEM_ADDR[I2C_CNT];
      TXD_DATA    <= MEM_DATA[I2C_CNT];
      ...  
    end

     

  2. припоминается , где - то читал , про невозможность синтезирования initial блока :laughing:

    можно, например инициализация памяти

    ну а как , тогда ?

    не так давно была тема про как делать ресет (посмотрите на схему SM)

     

    // 1
    reg [3:0] RST_CNT=0;
    reg       RST=1;
    wire      RESET;
    
    always @(posedge iCLK)
    begin
      RST <= ~RST_CNT[3];
      if (~RST_CNT[3])
        RST_CNT <= RST_CNT + 1;  
    end
    
    assign RESET = RST;
    
    // 2
    reg [3:0] RST_CNT=~0;
    reg       RST=1;
    wire      RESET;
    
    always @(posedge iCLK)
    begin
      RST <= |RST_CNT;
      if (RST)
        RST_CNT <= RST_CNT - 1;
    end
    
    assign RESET = RST;

  3. initial 
    begin
        RESET_INV = 1'b0; 
        repeat(10) @(posedge SCLK);
        RESET_INV <= 1'b1;
    end

     

    но посмотрев RTL Viewer не увидел никакой синтезируемой схемы, привязанной к выходу RESET_INV

     

    а как можно rtl viewer'ом посмотреть тестбенч?

     

    это же в тестбенче у Вас?))

    initial 
    begin
        RESET_INV = 1'b0; 
        repeat(10) @(posedge SCLK);
        RESET_INV <= 1'b1;
    end

     

  4. или можете на примере показать алгоритм кодирования и декодирования или скинуть полезную для дела статью

    а что там показывать то. гуглите Fast Chase, Chase-Pyndyah

     

    ничего там сложного нету

     

    тыщщу раз турбики обсуждались. serg76 правильно сказал - поиском пользуйтесь

  5. Вообщем как поступают при ожидании синхронизирующего сигнала , как и в моей ситуации ?

    я бы так

    always @(posedge iCLK)
    begin
      SDOF_D1 <= SDOF;
      SDOF_D2 <= SDOF_D1;
      SDOF_LOW_TO_HIGH <= ~SDOF_LOW_TO_HIGH & SDOF_D2;
    end

  6. Приведите идеи моргания светодиодом на языке VHDL.

    reg [23:0] cnt=0;
    
    always @(posedge i_clk)
      cnt <= cnt - 1;
      
    assign o_led_blink = cnt[23];

     

    reg [23:0] cnt=0;
    
    always @(posedge i_clk)
      cnt <= cnt - 1;
      
    assign o_led_blink = cnt[23];

    черт на вхдл же просили

×
×
  • Создать...