В модуле 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;, все работает. В чем причина?