华为海思 verilog 笔试准备

本文介绍了Verilog语言在数字电路设计中的应用,涵盖了可综合电路的限制、变量类型、赋值方式、数值表达、循环语句及数据处理等内容,并讨论了综合流程及门级映射等关键技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.moudle中 parameter和define的作用范围

3. 可综合电路 (例如forever , initial(一般用于测试程序),fork...join,wait,time,display,循环次数不定的for语句均不可综合; 延时(不可综合,但是也不会报错)) 。generate 可综合 相当于把代码全写完。可以综合的变量 reg,integer,wire,sti四种;不可综合的变量有: time real。

4. 综合 分为三步:translation + logic optimization + gate mapping;

Translation:主要把描述RTL级的HDL语言,在约束下转换成DC内部的同意用门级描述的电路,以GTECH或者没有映射的ddc形式展现

logic optimization:逻辑优化,就是把统一用门级描述的电路进行优化,例如把路径调整一下,门改一下。

Gate mapping: 门级映射;DC用别的厂商的工艺库把电路给映射出来,得到一个ddc文件;包括映射的门电路信息与网表,.v格式的网表,延时信息(sdf),工作约束(sdc)。(.ddc不能用文本编辑器打开)。.ddc这个包含的网表文件是实际意义的网表文件,而.v这个形式的网表问价是用来做后仿真的文件。

4. 阻塞赋值, 非阻塞赋值

5. 无损定点化 :将第一位小数变到5以下

6. 模块例化: 例如声明一个测试模块,需要将设计模块的输入输出实例化,之后使用initial过程块

7. 数值的表达:C=3’d8 是不行的因为:前面的3代表 二进制下的位数 最高只能 111 代表最高是7.

8. 循环语句四种: for while repeat(常量表达式) forever(不能写在程序中 必须写在initial中) generate(必须用genvar 来声明for循环的参数,可以综合的)

9.  有符号数的操作  Verilog中对于无符号数、有符号数的处理_nxhsyv_新浪博客

对于长位宽赋值给短位宽,不管左侧右侧是有符号数无符号数,均截取

对于短位宽赋值给长位宽,右侧是无符号数,补0 ;右侧是有符号数,看左侧的符号位是多少,是1补1,是0补0.

取绝对值: 一般有代码。

有符号比较大小, 比较器的面积大小是不同的,但是无符号数的面积大小是相同的。

有符号数进行位移操作 是正数首位为0没有问题, 是负数的话会出错,因为最高位是要补0的。可以使用/2来进行代替操作。

10. 线性信号不是必须显性定义 默认为0.

11. eg[31:0] data ;

        data[0+:8] = data[7:0]

eg[0:31] data ;

        data[0+:8] = data[0:7]

12. 分频器的实现:

奇数分频器

偶数分频器

13. 关键字和优先级

14. >> 表示逻辑后移;>>> 表示算术后移 适用于有符号数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值