Verilog 字符串

简介: Verilog 字符串


字符串简介

一个字符串是由双引号"括起来并包含在一行中的字符序列。

在表达式和赋值语句中,用作操作数的字符串被视为由8bit ASCII码值表示的无符号整数常量。

字符串声明

字符串变量是wire/reg类型的变量,宽度等于字符串中的字符个数乘以8。

reg [8*12 -1 : 0] stringVar; // 可以存储12个字符
initial begin
    stringVal = "Hello World!";
end

字符串操作

可以使用Verilog的运算符来操作字符串,操作的值都是以8bit ASCII值为一个整体。

$display自动地在输出后进行换行,$write则在输出后不换行。在$display和$write中输出格式控制是用双引号括起来的字符串。

// 字符串打印
$display("%s is stored as %h", stringVar,stringVar);
// 字符串拼接
stringVar = {"Hello ","World!"};
  • 当一个变量声明的位宽大于保存被赋字符串所需的位宽时,左边的多余位宽在赋值后用0填充。
  • 如果字符串长度大于声明的字符串变量的位宽,则该字符串将被向左截断,最左边的字符将丢失。

格式说明符,%和格式字符组成,将输出地数据转换成指定的格式输出。

转义字符

输出数字( 八进制、十进制、十六进制)时:

  • 如果对应所有位都为不定值,则输出小写x, 部分位为不定态输出大写X。
  • 如果对应所有位都为高阻值,则输出小写z, 部分位为高阻值输出大写Z。

输出字符画

在线生成字符画网站

  • 根据文字生成字符画
  • 根据图片生成字符画
  • 根据流程图生成字符画
`timescale 1ns / 1ns
module tb_ascii_pic();
initial begin
        show_pass();
        # 100 ;
        $stop;
end
task automatic show_pass();
begin: pass
    $display("pwd: %m");
    $display(".----------------.  .----------------.  .----------------.  .----------------. " ); 
    $display("| .--------------. || .--------------. || .--------------. || .--------------. |");
    $display("| |   ______     | || |      __      | || |    _______   | || |    _______   | |");
    $display("| |  |_   __ \   | || |     /  \     | || |   /  ___  |  | || |   /  ___  |  | |");
    $display("| |    | |__) |  | || |    / /\ \    | || |  |  (__ \_|  | || |  |  (__ \_|  | |");
    $display("| |    |  ___/   | || |   / ____ \   | || |   '.___`-.   | || |   '.___`-.   | |");
    $display("| |   _| |_      | || | _/ /    \ \_ | || |  |`\____) |  | || |  |`\____) |  | |");
    $display("| |  |_____|     | || ||____|  |____|| || |  |_______.'  | || |  |_______.'  | |");
    $display("| |              | || |              | || |              | || |              | |");
    $display("| '--------------' || '--------------' || '--------------' || '--------------' |");
    $display("'----------------'  '----------------'  '----------------'  '----------------' " );   
    $display("time: %t",$time );
end
endtask
task automatic show_fail();
begin: fail
    $display("pwd: %m");
    $display(".----------------.  .----------------.  .----------------.  .----------------. " ); 
    $display("| .--------------. || .--------------. || .--------------. || .--------------. |");
    $display("| |  _________   | || |      __      | || |     _____    | || |   _____      | |");
    $display("| | |_   ___  |  | || |     /  \     | || |    |_   _|   | || |  |_   _|     | |");
    $display("| |   |  _|      | || |   / ____ \   | || |      | |     | || |    | |   _   | |");
    $display("| |  _| |_       | || | _/ /    \ \_ | || |     _| |_    | || |   _| |__/ |  | |");
    $display("| | |_____|      | || ||____|  |____|| || |    |_____|   | || |  |________|  | |");
    $display("| |              | || |              | || |              | || |              | |");
    $display("| '--------------' || '--------------' || '--------------' || '--------------' |");
    $display("'----------------'  '----------------'  '----------------'  '----------------' " );
    $display("time: %t",$time );
end
endtask
endmodule

相关文章
|
7月前
|
存储 程序员 C语言
C语言:字符输出
C语言:字符输出
|
C语言 C++
C语言:算数转换
已知:char 和 short 这两种字节长度小于 int 类型参与算术运算时,会进行整型提升。 而当字节长度大于 int 类型的数据参与运算时,如果某个操作符的两个操作数是不同类型,其中一个操作数需要按级别(级别低的数据转换为级别高的数据)转换为另一个操作数的类型,这样的转换即为算数转换
80 1
|
C语言
C语言之十进制转化为十六进制
C语言之十进制转化为十六进制
167 0
|
6月前
|
C语言
关于进制在输出时的转换【C语言】
关于进制在输出时的转换【C语言】
|
6月前
|
存储 C语言
【学习笔记】verilog HDL之二:数据类型与表达式
本文介绍了Verilog语言中的常量、变量和表达式。Verilog有四种基本值:0、1、x(未知)和z(高阻)。整型常量有十进制和基数两种格式,实数型常量包括浮点数,字符串常量由双引号括起的字符序列构成。变量分为线网型和寄存器型,线网型包括wire、tri等11种类型,寄存器型有reg、integer、time等,其中reg可声明存储器。表达式中的操作数包括常数、参数、线网等8种类型,操作符包括算术、关系、逻辑等9种类型。
|
7月前
|
C++
Verilog 函数和任务
Verilog 函数和任务
|
7月前
|
存储 C语言 异构计算
|
存储 C语言
C语言 关于输入输出与结束符“\0”
C语言 关于输入输出与结束符“\0”
532 1
Verilog语法入门(六)八位两路选择器
Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。
537 0
|
自然语言处理 算法 异构计算
Verilog HDL基本语法规则
本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
255 0
Verilog HDL基本语法规则