预览模式: 普通 | 列表

SystemVerilog学习笔记(3) ------ string(2)

        string 所特有的几种操作符 ==, !=, >, <, >=, <= 和 C 中的字符串比较是一样的, 这6种操作符两边的量可以是 string, 或者是字符串文本.

        连接操作

   {Str1, Str2, ..., StrN}

        连接操作可以将多个字符串连接起来, StrN 可以是 string 类型的变量, 也可是以字符串文本.

 

        复制操作
 

   {multiplier{Str}}

        复制操作可以把一个字符串进行多次复制,并连接. multiplier 可是是常量, 也可是是变量, 但必须是整数. Str 可以是一个 string 类型的量, 也可是一个字符串文本, 甚至是一个整型的数. 要注意的是, 当 Str 是一个整数时, Str 会先按照整型隐式转换成 string 的方法进行转换, 然后再进行复制操作.例如:
 

   bit [11:0] bit_str= 12'h544;
 string b = {2{bit_str}};     
// b is 32'h05440544, not 24'h544544

 

        string 的一些常用的函数

  function int len() 返回字符串的长度, 空字符串返回0.
  task putc(int i, byte c) 设置第i 个字符为c, 和b[i] = c的效果一样.
  function byte getc(int i) 返回第i个字符, 和 c = b[i] 的效果一样.
  function string toupper() 小写字母转换成大写字母.
  function int compare(string s) 和 C 中的 strcmp 的功能一样.大小写不敏感
  function int icompare(string s) 和 C 中的 strcmp 的功能一样.但大小写敏感
  function string substr(int i, int j) 返回第i到第j之间的子字符串
  function integer atoi()
function integer atohex()
function integer atooct()
function integer atobin()
以十进制, 十六进制, 八进制或者二进制把字符串转换成整数.
  function real atoreal() 字符串转换成实数.
 

task itoa(integer i)
task hextoa(integer i)
task octtoa(integer i)
task bintoa(integer i)
 

将十进制, 十六进制, 八进制或者二进制的整数转换成字符串.
  task realtoa(real r) 将实数转换成字符串.

 

分类:FPGA | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1102

SystemVerilog学习笔记(2) ------ string(1)

         string 在 Verilog 中也有, 但是仅仅只是表现为一个8-bit整数倍的数组, 而在 SystemVerilog 中, string 是尺寸可变, 动态分配并且提供了很多操作字符串的方法的.

 

        string的声名方法

   string variable_name [= initial_value];

         variable_name 为变量名; initial_value 为初始值, 在声名时可有可无. 如果不给初始值, string 变量的默认初值为"", 即一个的空字符串. 例:

   string site_name = "blove_water";

 

         string 中的字符可以通过下标的方式来访问. 例如:

    site_name[0]
  site_name[6]
的值为 "b"
的值为 "w"

 

 

        string 中不能有 "\0", 所有的 "\0" 会被忽略掉. 例如: 

   bit [27:0]   i = 28'h0410042;
 string     str = string'(i);
 $display
("str = %s", str);

        得到的结果是: str = AB;

 

        string 是以 8-bit 为单位的. 当整型转换为 string 时, 如果整型的宽度不是 8-bit 的整数陪, 则在整数的左边补零, 直到宽度为 8-bit 的整数陪. 例如: 

   bit [11:0] b = 12’ha41;  
 string s2 = string’(b);      // sets s2 to 16’h0a41 

 

Tags: SystemVerilog Verilog FPGA

分类:FPGA | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1003

图标练习--- 字符变图标

        前段时间在写一个小软件, 但后来工作的事太多, 也没时间去管, 最后就不了了之. 这本来是打算用作软件的图标的, 但现在也没有用了,就拿出来 show 下. 高手就不必看了, 这个只是自娱自乐的东西啦.
        图标来源是一个隶书的字母 C. 因为不会 illustrator, 所以就用 Photoshop 做了. 我想如果是用 illustrator 的话应该可以做得更清爽的.

Tags: 练习 ICON Photoshop

分类:Gallery | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 984

SystemVerilog学习笔记(1) ------ 整型

        SystemVerilog中的整型数据可以看作是Verilog和C中整型数据的一种杂交, 因些看起来有些象Verilog也有些象C.
        整型可分为基本整型和向量整型(直译的).下面是IEEE1800中定义的.

  integer_type ::= integer_vector_type | integer_atom_type
integer_atom_type ::= byte | shortint | int | longint | integer | time
integer_vector_type ::= bit | logic | reg

        基本整型有: byte, shortint, int, longint, integer, time.
        向量整型有: bit, logic, reg.

        这些整型又为分2态和4态数据类型. 2态即'0', '1'. 4态是在2态的基础上增加了 'Z'  和 'X'. 不论是基本整型还是向量类整型, 它们之中都有2态和4态之分.详细内容可看下表:

  byte 2 态 8-bit 整型, 相当于 C 中的 char signed
  shortint 2 态 16-bit 整型, 相当于 C 中的 short signed
  int 2 态 32-bit 整型, 相当于 C 中的 int signed
  longint 2 态 64-bit 整型 signed
  integer 4 态 32-bit 整型, Verilog 的数据类型 signed
  time 4 态 64-bit 整型, Verilog 的数据类型 unsigned
  bit 2 态向量类整型  
  logic 4 态向量类整型  
  reg 4 态向量类整型, Verilog 的数据类型  

        SystemVerilog 做为 Verilog 的扩展, 因此在 SystemVerilog 中这些数据类型仍可以使用. 在这些类型之中, int 和 integer 基本上可以看做一样, 只是一个是 2 态,一个是 4 态. (在能只用 2 态的情况下尽量用 int, 因为 2 态数据类型在仿真的过程中可以有更高的效率.) logic 和 reg 在 SystemVerilog 中是相等的, 因为 logic 在字面意义上能够更好的表示 4 态, 而不象 reg 给人感觉不清, 所以尽量的用 logic 代替  reg.
        在 4 态类型转换为 2 态类型时, 'Z' 和 'X' 会转换为 '0'.

        整型还为分有符号和无符号的.用关键字 signed 和 unsigned 表示. 在声名时一定要注意 SystemVerilog 和 C 的不同.
        在 C 中声名一个整数的方法为:
                                unsigned int a;
        而在 SystemVerilog 中声名的方法为:
                                int unsigned a;
 

Tags: SystemVerilog Verilog FPGA

分类:FPGA | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 910

把我的心带回去吧...

        天晚上从健身房回来,和同事再一次谈起了回武汉的事。A君准备这个周末就回去,对B君问道:“有什么东西要我带回去吗?”,B君毫不犹豫的道:“把我的心带回去吧!”。
        当时大家都笑了,笑得很大声。可是想一想,又有什么好笑的呢,只不过是真情流露而已。出门在外谁会没有牵绊呢?
        想回家的不只他一个,谁都想回去。想见见父母,见见朋友。好久没有和家人一起吃顿饭,好久没有和好兄弟们一起聚一聚,好久没有。。。。。。
        曾经听过这样一段话。“若您工作在外,以一年只回家一次计算,如果你的父母还能活30年,那么你们相见的次数最多是30次;如果你的父母还能活20年,那么你们相见的次数最多是20次;如果你的父母还能活10年,那么你们相见的次数最多是10次……数字是多么可怕而又真实。学业、事业故然重要,但与父母相处的日子更重要,不要总因为这样那样的理由或籍口而退迟回家多陪陪父母,小时候父母为我们请了多少假,为什么我们就不能请个假抽个空常回家看看?”
        不过我们还是幸运的,至少一年不只回家一次。
        我想也应该回家一趟了。

Tags: 事儿 思念

分类:Something | 固定链接 | 评论: 2 | 引用: 0 | 查看次数: 1126

最近比较烦

        知道为什么,最近总是感觉很烦燥。总觉得事太多,但又不想去做。是深圳这边的天气?是这里的环境?还是自己有段时间没有回家了?
        这几个星期过得很快,觉得5天的时间只是一瞬间。快点好啊,可以快点发工资,但问题是也会快点交房租。希望总是会伴随着失望的,所以不想再去希望什么啦。枯燥无味的生活已经让人变得麻木了,对人情麻木,对生活麻木,对社会麻木。。。。。。

Tags: 生活 深圳

分类:Something | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1110

以前设计的首页

        个是先前做的个网站首页,今天翻电脑时找出来的。中间那东西的原型是马桶

 

Tags: 练习

分类:Gallery | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1250

归去来

   

   从美国回来已经快一个月了,也再一次开始慢慢习惯深圳这座城市了。当然不是主动要去习惯的,因为这地方的确没有什么值得去习惯的。
        相对于同样是IT产业发达的深圳和美国硅谷而言,两个地方环境反差真的是太大了。记得在去美国之前,同事和同学都还在开玩笑,说要跟他们寄几个洋妞回来,结果去了之后才发现,在那边路上基本上见不到几个人,而深圳则遍地都是两条腿的。至于深圳的公交就不用说了,从来没见过这烂的。不过庆幸的是,我去公司上班不用坐公交,只要两只脚,至少不用去挤车,当然人堵在人行天桥上走不了,则是经常的事了。
        真的想不通,为什么这么多的人要往深圳跑(我是被逼无奈才来的),虽说这地方赚钱比其它地方容易,但用钱更容易,在这边想要存些钱还真不容易。就算好不容易存了点钱,到最后不是被偷了,就是被抢了。深圳给人的感觉就是:如果不犯罪,就活不下去。

Tags: 美国 深圳

分类:Something | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1177