在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 11767|回复: 18

[原创] 【不忘出芯】一起学Verilog

[复制链接]
发表于 2019-4-29 09:47:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 ic7x24 于 2019-5-7 21:46 编辑

【写在前面】

1. 读书和实践是学习Verilog的正确途径。
2. 逛论坛、找资料、看教程不能代替verilog的正规学习,同时可能有上网成瘾、观点误导等副作用,请谨慎使用。
3. 不要高估每天能做到的,不要低估一年能做到的。

【学习准备】

1. 搭建自己的EDA环境,最起码要有编辑器,仿真器、综合工具。
2. 使用git或者其他版本管理工具保存你的代码。建议使用github。
3. 选择一本数字电路教程,一本verilog语法书。实体书,电子版都可以。
4. 找一些朋友一起学习,相互监督。





 楼主| 发表于 2019-4-29 09:51:05 | 显示全部楼层
本帖最后由 ic7x24 于 2019-4-29 16:08 编辑

【001 进制与编码】

1. bit, byte, word, dword, qword的区别

2. 什么是原码,反码,补码,符号-数值码(sign-magnitude)。以8bit为例,给出各自表示的数值范围。

3. 十进制转换为二进制编码:
127,
(-127),
127.375,
(-127.375)

4. 设计BCD译码器,输入0~9。采用verilog描述并画出门级电路图。

5. 异步FIFO深度为18,如何设计地址格雷码?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-30 08:38:35 | 显示全部楼层
本帖最后由 ic7x24 于 2019-4-30 21:03 编辑

【002:门电路】

1. 画一下电路图:CMOS反相器、与非门、或非门、三态输出门、漏极开路门。

2. 解释一下Vih,Vil,Vol,Voh,Vt,Iddq

3. CMOS反相器的速度与哪些因素有关?什么是转换时间(transition time)和传播延迟(propagation delay)?

4. CMOS反相器的功耗主要包括哪几部分?分别与哪些因素相关?

5. 什么是latch-up(闩锁效应)?

6. 相同面积的cmos与非门和或非门哪个更快?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-1 07:08:49 | 显示全部楼层
【003:标准单元库】

eetop论坛里面可以搜索到一些参考资料: thread-611701-1-1

1. 了解目录结构:与前端相关的比如文档(doc),仿真模型(verilog/vhdl),标准单元库(synopsys/symbols)
2. 阅读文档transition time, propagation delay等参数的定义
3. 阅读文档Power Dissipation/Calculation的描述
4. 阅读文档Delay calculation的描述
5. 提供了哪些类型的cell?
6. Verilog文件中包含了哪些信息?

回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-2 05:46:56 | 显示全部楼层

【004:组合逻辑】


1. 什么是竞争和冒险?

2. 设计一个2-4译码器。

3. 输入一个8bit数,输出其中1的个数。如果只能使用1bit全加器,最少需要几个?

4. 如果一个标准单元库只有三个cell:
    2输入mux(o = s ?a :b;),
    TIEH(输出常数1),
    TIEL(输出常数0),

    如何实现以下功能?

4.1 反相器inv

4.2 缓冲器buffer

4.3 两输入与门and2

4.4 两输入或门or2

4.5 四输入的mux  mux4

4.6 一位全加器 fa
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-3 07:49:59 | 显示全部楼层
【005:时序电路】

1. dff和latch有什么区别。

2. 什么是同步电路和异步电路。

3. 什么是setup time和 hold time。

4. 设计一个101序列检测器。画出状态转移图,写verilog,并仿真测试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-4 09:34:22 | 显示全部楼层
【006:边沿检测】

1. 复习verilog语法
- reg和wire的区别
- 阻塞赋值与非阻塞赋值的区别
- parameter与define的区别
- task与function的区别

2. 用verilog实现边沿检测电路:上升沿,下降沿,双沿(上升或下降沿)。

3. 记录一下第2题中用到的工具,包括工具版本,操作步骤或命令选项,遇到的错误,提示信息等。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-5 08:54:19 | 显示全部楼层
【007:串并变换】


1. 复习verilog语法

- 文件操作fopen fdisplay fwrite fclose
- 生成随机数 random
- 初始化 readmemh readmemb
- finish stop


2. 用verilog实现串并变换。
  input [3:0] data_in;
  output [3:0] data_out;
  input [1:0] mode;
  input load;

  input clk;
  input rst_n;

mode 0 :串行输入data_in[0],并行输出data_out[3:0]
mode 1 :并行输入data_in[3:0],串行输出data_out[0]
mode 2 :并行输入data_in[3:0],并行输出data_out[3:0],延迟1个时钟周期
mode 3 :并行输入data_in[3:0],并行反序输出data_out[3:0],延迟1个时钟周期并且交换bit顺序
data_out[3]=data_in[0];
data_out[2]=data_in[1]
data_out[1]=data_in[2]
data_out[0]=data_in[3]

附加要求:将输入输出的位宽做成参数化


3. 记录一下第2题中用到的工具,包括工具版本,操作步骤或命令选项,遇到的错误,提示信息等。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-7 21:44:42 | 显示全部楼层
[008:计数器]


1. 用verilog实现一个4bit二进制计数器。
a) 异步复位
b) 同步复位
input clk, rst_n;
output [3:0] o_cnt;

2. 用verilog实现4bit约翰逊(Johnson)计数器。

3. 用verilog实现4bit环形计数器:复位有效时输出0001,复位释放后依次输出0010,0100,1000,0001,0010...

4. 比较一下以上三种计数器的特点。

5. 记录1,2,3题目使用的工具,操作步骤,以及出现的错误和提示信息。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-9 20:16:34 | 显示全部楼层
[009: 按键防抖]

1. 用verilog实现按键抖动消除电路,抖动小于15ms,输入时钟12MHz。

2. 记录题目1中用到的工具,操作步骤,遇到的错误和提示信息。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-18 03:10 , Processed in 0.022766 second(s), 4 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表