龙芯杯备战1

龙芯杯备战1

标签(空格分隔): 计算机体系结构 龙芯杯


vivado 的安装以及verilog 入门

1.vivodo的安装

    安装环境: ubuntu18.04   vivado2018.1

  如果linux系统中所开的空间不够,可以直接将压缩包和安装包放置在windows系统硬盘空间中,在ubuntu18.04文件中点开其他位置即可进行安装。直接可安装成功。(按照讲义内容进行即可,注意为web版本)

  若需要打开vivado,则直接在终端上输入vivado则可以直接打开。具体新建项目的方式可以参考讲义。

2.verilog入门

1.verilog设计说明

  整个verilog的设计应该是寄存器级别的,尽量不要使用系统级别的代码。

   verilog 语法和C语言很像,但是思维方式应该有很大不同,需要跳出C语言串行的思维方式,按照数字逻辑中并行的思维方式进行思考。要明确verilog语法是用来设计硬件电路的,硬件电路是并行并发的。所以 Verilog 语
言里面,一前一后两句 assign 语句,不是写在前面的先执行写在后面的后执行,在忽略底层电路延迟因素的情况
下,这两句对应的逻辑是同时并发执行的。

   必要的verilog学习和语法使用步骤:先进行电路结构设计,再进行 Verilog 代码编写。

   在设计步骤上,建议:“自顶向下、模块划分、逐层细化”。划分过程中,推荐优先沿着数据流的路径进行划分

2.verilog代码风格

   务必记住:代码写出来,要让自己过了一年半载还能看得懂改得了,要让同项目组的其它成员能看得懂改得了,要让项目无关的本领域设计人员在看了你的设计文档之后也能看得懂改得了。

  变量命名要求:不要求大小写,但需用下划线_来区分多个单词

缩写需要注释清楚 代码需要对齐,上下行对齐的时候不要使用 Tab,而要用空格

3.verilog语法

  1. module,endmodule——-模块声明
  2. input,output,inout——-端口声明
  3. wire———线网数据类型
  4. reg,integer———变量数据类型

    更多的语法使用

    一个3-8的译码器的代码如下所示
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    \\3-8译码器
    module decoder_3_8(
    input [2:0] in,
    output [7:0] out
    );
    assign out[0] = (in==3'd0);
    assign out[1] = (in==3'd1);
    assign out[2] = (in==3'd2);
    assign out[3] = (in==3'd3);
    assign out[4] = (in==3'd4);
    assign out[5] = (in==3'd5);
    assign out[6] = (in==3'd6);
    assign out[7] = (in==3'd7);
    endmodule

3.继续学习的计划以及欠缺方面

继续完善关于verilog的学习,注意掌握一些基础的语法,同时,还需要对于verilog的思想有进一步的认识,要了解verilog设计的思路,下周尝试自己进行一个简单的设计。
下周的工作还有熟悉MIPS汇编代码,以及尝试对于C语言代码进行反汇编(了解C语言和C++语言的部分差异)
下周开始尝试接触有关计算机组成原理中有关流水线部分的知识

[1]: https://blog.csdn.net/wang1986527/article/details/77968118