学习笔记2

总结1: 组合逻辑赋值出现的问题

tri信号上升沿拉高tripos_clrpos,clr的上升沿拉低tripos_clrpos,
最开始的写法如下图,其中tri_pos和clr_pos分别是检测到,对应的上升沿,然而该描述还是功能模块不清


image.png

改进后的写法


image.png
就是在tripos_clrpos在tri_pos拉高的时候,tripos_clrpos取反,这样假设的是tripos_clrpos最开始就是0。该方法在vivado下仿真没问题
然而换了vcs仿真,编译会卡在生成波形那,
verdi end of traversing

其实是我写的有问题,上面的写法存在两个问题

  1. tripos_clrpos信号初始值得靠ena进行赋值
  2. else语句后tripos_clrpos=tripos_clrpos;注定要产生锁存器

改进之后的写法:

always@(*) begin
    if(!ena) trineg_clrneg = 1'b0;
    else if(tri_neg) trineg_clrneg = 1'b1;
    else if(clr_neg) trineg_clrneg = 1'b0;
    else             trineg_clrneg = trineg_clrneg_reg;
end

其中trineg_clrneg_reg是trineg_clrneg经过ff的信号

总结2 不能使用变量(即bitsEnd )作为范围的结尾

在Verilog中,您不能使用变量(即bitsEnd )作为范围的结尾。 您可以使用+: / -: 运算符来解决您的问题:
assign leadingBits = magnitude[bitsEnd+3 -: 4];

总结3: Verilog随机函数的使用

产生一个在min, max之间随机数的例子:
EX-3:
reg[23:0] rand;
rand = min+{$random}%(max-min+1);
verilog仿真 random 的选择
在verilog仿真中常用的random有如下三个:

$random
$urandom
$urandom_range(low,high)
//$random的结果不随sv_seed的变化而变化,
//而$urandom和$urandom_range的结果随着sv_seed的变化而变化,
//因此我们可以在代码中使用$urandom和$urandom_range,然后在命令里面改变随机种子,这样就可以使用不同的种子来进行仿真了

总结4: 在Vivado中使用系统的函数,报错

ERROR: [XSIM 43-4287] "E:/ESWIN_Homework/Lab_week3/project_1/RTL/lab11/lab11_tb.v" Line 59. Undefined system task '$fsdbDumpfile'

总结5:位扩展

把1'b1赋值给,多位的值,只有最低位为1

总结6:

VCS -debug_all converter.v编译看下有没有语法错误

总结7 如何理解高阻态

简介:在电子学中,高阻态(英语:High impedance)表示电路中的某个节点具有相对电路中其他点相对更高的阻抗。这个概念在三态逻辑、上拉电阻中有所涉及。在硬件描述语言(如Verilog HDL和VHDL)中,高阻态通常用字母z来表示。

实质:电路分析时高阻态可做开路理解。你可以把它看作输出(输入)电阻非常大。它的极限状态可以认为悬空(开路)。也就是说理论上高阻态不是悬空,它是对地或对电源电阻极大的状态。而实际应用上与引脚的悬空几乎是一样的。

意义:当门电路的输出上拉管导通而下拉管截止时,输出为高电平;反之就是低电平;如上拉管和下拉管都截止时,输出端就相当于浮空(没有电流流动),其电平随外部电平高低而定,即该门电路放弃对输出端电路的控制 。
三态逻辑:在数字电路中,三态逻辑(英语:Three-state logic)允许输出端在0和1两种逻辑电平之外呈现高阻态,等效于将输出的影响从后级电路中移除。这允许多个电路共同使用同一个输出线(例如总线)。

三态输出在寄存器、总线以及7400系列、4000系列等各型号的逻辑IC发挥着重要的作用,并常常内置在其他各种集成电路。除此之外,三态逻辑的典型应用还包括微处理器、存储设备、外设的内部和外部总线。许多设备提供一个OE(Output Enable)用于在低电平时才令输出使能,而在不使能时保持高阻态。

总结8:Verilog中的位扩展

image.png

总结9: Verilog中数字省略位宽的写法

image.png

如果进制格式也省略(比如interger)


image.png

总结10:Verilog Q&A过程

代码提交给后面的人,要用(spyglass)检查一遍

总结11:两个工具编译报错不一样

image.png

VCS报错的原因,当PAD_NUM等于0时会违例

总结12:define的用法

image.png

总结13 前端需要的知识技能

通过逻辑综合,电路是什么样子,Verilog testbech, sv testbench,UVM testbench,MATLAB, c, c++,verdi速度快,工具
RTL Q&A Leda,前端重在coding, debug,理论,语言,方法学,协议,概念

总结14 integer的使用

integer

  • 可以看做是一个有符号的32位的数
  • 可以在定义的时候进行初始化
  • 可以在块里面进行初始化

总结15 位拼接

image.png

我想把高位的MSB个全赋值为1但是这里是会报错的,我就搞不清楚了


image.png

总结16 三段式的写法

always@(current_state or else signal)(敏感列表中存放对状态跳转有影响的信号)
     begin
     next_state=x;    (初始化,使得系统复位进入正确的状态)
     case(current_state)
     s1: if(.....)
 next_state=s2
     .
     .
     .......
     endcase
     end
时序逻辑always块:
always@(posedge clk or negedge rst)
   if(!rst)
     current_state<=IDLE;
   else
     current_state<=next_state;

总结17 Verilog读取文件的方式,写文件的方式

module read_write_file();
    integer fp_r,fp_w;
    integer count;
    reg [9:0] reg1;
 
    initial
        begin
            fp_r=$fopen("data_in.txt","r");//以读的方式打开文件,注意这里是Makefile的相对路径
            fp_w=$fopen("data_out.txt","w");//以写的方式打开文件,
 
            while(! $feof(fp_r))
                begin
                    count=$fscanf(fp_r,"%b" ,reg1) ;//每次读一行
                    $display("%d::::%b",count,reg1) ;//打印输出
                    $fwrite(fp_w,"%b\n",reg1) ;//写入文件
                end
 
            $fclose(fp_r);//关闭已打开的文件
            $fclose(fp_w);
        end
endmodule

总计18 Verilog打印输出固定格式,空格

image.png

总结19 如果要用include文件中的内容,需要先inculude那个文件

image.png

总结20 一般不建议在设计中增加时序延迟

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348