【发布时间】:2020-05-22 18:25:23
【问题描述】:
我正在使用 UART 输入各种字符(ASCII)并将每个字符转换为十六进制。我正在使用一个数组来存储这些字符输入。如果可能的话,我想简化这个可能过多的“if”语句。
我的声明:
reg [7:0] input_param [1:12]; // Array w/8-bit wide variables
localparam ASCII_0 = 8'h30;
// ASCII to Hex Conversion
always@(input_param)
begin
if (input_param[1] == ASCII_0) input_param_h[1] = 4'h0;
else if(input_param[1] == ASCII_1) input_param_h[1] = 4'h1;
...
else if(input_param[1] == ASCII_F) input_param_h[1] = 4'hF;
对于我允许的 # 个输入继续:
if (input_param[12] == ASCII_0) input_param_h[2] = 4'h0;
else if(input_param[12] == ASCII_1) input_param_h[2] = 4'h1;
...
else if(input_param[12] == ASCII_F) input_param_h[2] = 4'hF;
end
【问题讨论】:
标签: arrays if-statement verilog data-conversion simplify