В модуле Verilog, среда Quartus Prime 20.1 SJ Lite Edition не работает присвоение в hex формате, только в двоичном

`timescale 1ns/1ps

module adc_sim_01(
    input wire f25mhzs,
    input wire [5:0] ns,
    input wire sclks,
    input wire sipos,
    output reg f12,
    output reg [3:0] sam_co=4'b0,
    output reg miso
);

   reg [15:0] sam1 = 4'hAACE;//16'b1010101011101110;//4'h0055;
   reg [15:0] sam2 = 4'h0100;
   reg [15:0] sam3 = 4'h0200;
   reg [15:0] sam4 = 4'h0500;
   reg [15:0] sam5 = 4'h1000;
   reg [15:0] sam6 = 4'h5000;
   reg [15:0] sam7 = 4'h1111;
   reg [15:0] sam8 = 4'h5000;


    always @    (posedge f25mhzs) f12 <= ~f12;

    always @ (negedge f25mhzs) if (ns==6'b000001) sam_co <= sam_co + 6'b000001; 

    always @ (posedge sclks) begin
     if ((sam_co==4'b0001)&&(ns==6'b000010)) miso <= sam1[15];
      if ((sam_co==4'b0001)&&(ns==6'b000100)) miso <= sam1[14];
       if ((sam_co==4'b0001)&&(ns==6'b000110)) miso <= sam1[13];
        if ((sam_co==4'b0001)&&(ns==6'b001000)) miso <= sam1[12];
     if ((sam_co==4'b0001)&&(ns==6'b001010)) miso <= sam1[11];       
      if ((sam_co==4'b0001)&&(ns==6'b001100)) miso <= sam1[10];
       if ((sam_co==4'b0001)&&(ns==6'b010000)) miso <= sam1[9];
        if ((sam_co==4'b0001)&&(ns==6'b010010)) miso <= sam1[8];
         if ((sam_co==4'b0001)&&(ns==6'b010100)) miso <= sam1[7];
           if ((sam_co==4'b0001)&&(ns==6'b010110)) miso <= sam1[6];

     end //always   
endmodule

В строке reg [15:0] sam1 = 4'hAACE; не срабатывает присвоение значений битов регистру miso. Если заменить на reg [15:0] sam1 = 16'b1010101011101110;, все работает. В чем причина?


Ответы (0 шт):