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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 15562|回复: 21

[原创] 【每日一题】一起学Verilog

[复制链接]
发表于 2018-12-30 17:48:05 | 显示全部楼层 |阅读模式

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

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

x

学着跟时间做朋友。

重要声明

读书和实践是学习Verilog的正确途径
本产品不能代替verilog的正规学习,同时可能有上网成瘾、观点误导等副作用,请谨慎使用。

001.

画出CMOS反相器的电路原理图。

002.

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

003.

解释一下Vih,Vil,Vol,Voh,Vt。

004.

什么是原码,反码,补码,符号-数值码。以4bit为例,给出各自表示的数值范围。

005.

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

006.

画出CMOS三态缓冲器的电路原理图,解释一下高阻态。

007.

什么是open-drain output?

008.

只用2输入mux,实现与,或,非,异或。2输入mux定义为

o = s ? a : b;009.

相同面积的cmos与非门和或非门哪个更快?

010.

说明代码中w1和 w2对应电路的具体区别:

wire [2:0] val; wire w1 = val > 0; wire w2 = val >= 0;011.

什么是竞争和冒险?

012.

设计1bit全加器,采用verilog描述并画出门级电路图。

013.

设计2-4译码器。采用verilog描述并画出门级电路图。

014.

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

015.

用verilog设计8bit奇偶校验电路。

016.

用verilog描述一个多路复用器,输入的通道数目N,每一路的位宽为M。

017.

用verilog实现 z = abs(x - y)
1) x和y是8bit无符号数
2) x和y是8bit有符号数(2补码)

018.

用verilog实现取整函数(ceil、floor、round)。以5bit为例,小数部分1位,取整后保留4bit。

wire [4:0] data; wire [3:0] data_ceil;wire [3:0] data_floor; wire [3:0] data_round;019.

用verilog实现乘法y = a * b
a和b都是8bit,考虑三种情况:

1) 都是无符号数
2) 都是有符号数
3) a是有符号数,b是无符号数

020.

输入一个8bit数,统计其中1的个数。

021.

求三个数的最大值:
y = max(a,b,c)

wire [3:0] a,b,c;022.

画一个D触发器的电路图。

023.

说明D触发器与Latch的区别。

024.

解释一下D触发器的建立时间与保持时间。

025.

解释一下Latch的建立时间与保持时间。

026.

用verilog实现1bit信号边沿检测功能,输出一个周期宽度的脉冲信号。
1) 上升沿
2) 下降沿
3) 上升沿或者下降沿

input clk, rst_n, data; output data_edge;027.

用verilog实现一个4bit二进制计数器。
1) 异步复位
2) 同步复位

input clk, rst_n; output [3:0] o_cnt;028.

用verilog实现串并转换。
1) lsb优先
2) msb优先

input clk, rst_n, data_i; output [7:0] data_o;029.

序列检测器:有“101”序列输入时输出为1,其他输入情况下,输出为0。画出状态转移图,并用verilog描述。

input clk, rst_n, data; output flag_101;030.

用verilog实现两路数据的乘法运算,要求只使用1个乘法器。

input clk, rst_n; input sel_x; input [7:0] da_x_y; input [7:0] db_x_y; output reg [15:0] dout_x_y;031.

名词解释:

  • ROM
  • RAM
  • SRAM
  • DRAM
  • SDRAM
  • EEPROM
  • DDR
  • FLASH
032.

用verilog实现一个深度16,位宽8bit的ROM,初始值等于对应地址加上0xA0。

moudule rom_16x8 ( ... ); ... endmodule033.

画出SRAM bit cell结构图。

034.

用verilog实现一个单端口sram,深度16,位宽8bit。支持片选,读写请求,要求代码可综合。

module spram_16x8 (     input clk,     input [3:0] addr,     input [7:0] din,     output [7:0] dout,     ... ); ... endmodule035.

用verilog实现一个同步双端口sram,深度16,位宽8bit。A口读出,B口写入。支持片选,读写请求,要求代码可综合。

module dpram_16x8 (    input clk,     input [3:0] addr_a,     output [7:0] dout_a,     input [7:0] din_b,     input [3:0] addr_b,     ... ); ... endmodule036.

用verilog实现一个异步双端口ram,深度16,位宽8bit。A口读出,B口写入。支持片选,读写请求,要求代码可综合。

module dpram_16x8 (     input clk_a,     input [3:0] addr_a,     output [7:0] dout_a,     ...    input clk_b,     input [7:0] din_b,     input [3:0] addr_b,     ... ); ... endmodule037.

用verilog实现一个同步双端口ram,深度16,位宽8bit。A口可读可写,B口可读可写。支持片选,读写请求,要求代码可综合。

module dpram_16x8 (     input clk,     input [7:0] din_a,     input [3:0] addr_a,     output [7:0] dout_a,     ...     input [7:0] din_b,     output [7:0] dout_b,     input [3:0] addr_b,     ... ); ... endmodule038.

用verilog实现一个3-tap低通FIR滤波器,输入输出为8bit无符号数,滤波器系数[1/4 1/2 1/4]

module fir_lpf_3tap (     input clk,     input rst_n,     input [7:0] din,     output [7:0] dout ); ...endmodule039.

用verilog实现一个3-tap低通FIR滤波器,输入输出为8bit无符号数,滤波器系数[1/4 1/2 1/4],支持bypass功能:fir_bypass为1时输出原始数据。

module fir_lpf_3tap (     input clk,     input rst_n,     input fir_bypass,     input [7:0] din,     output [7:0] dout ); ...endmodule040.

用verilog实现一个低通FIR滤波器,输入输出为8bit无符号数,滤波器系数根据mode选择:
mode 0:bypass
mode 1:[1 2 1]/4
mode 2:[1 2 2 2 1]/8
mode 3:[1 2 3 4 3 2 1]/16

module fir_lpf (     input clk,     input rst_n,     input [1:0] mode,     input [7:0] din,     output [7:0] dout ); ...endmodule041.

用verilog实现一个参数化的FIR滤波器。可配置参数包括 1. 输入输出数据位宽N 2. 滤波器阶数T 3. 滤波器系数位宽M (输入数据与滤波器系数为无符号数)

042.

用verilog实现一个3-tap低通FIR滤波器,Y通路输入输出为8bit无符号数,滤波器系数[1/4 1/2 1/4]。C通路bypass输出。

module fir_lpf_3tap_YC (     input clk,     input rst_n,     input [7:0] yin,     output [7:0] yout,     input [7:0] cin,     output [7:0] cout ); ...endmodule043.

用verilog实现 y(n) = x(n) + x(n-1) + x(n-2) + x(n-3) + x(n-4)+ x(n-5)+ x(n-6)+ x(n-7) 输入x是8bit无符号数。

044.

用verilog实现 y(n) = 0.75*x(n) + 0.25*y(n-1) x, y是8bit无符号数。

045.

用verilog实现二分频。

046.

用verilog实现三分频电路,要求输出50%占空比。

047.

画出clock gating cell的原理图。

048.

用verilog实现静态时钟切换电路。外部管脚输入sel,clk,testclk。sel为1输出clk,sel为0输出testclk。

module clkmux_DONTCH (     input sel,     input clk,     input testclk,     output clko ); ... endmodule049.

用verilog实现glitch free时钟切换电路。输入sel,clka,clkb,sel为1输出clka,sel为0输出clkb。

050.

解释一下亚稳态。

051.

用verilog实现异步复位同步释放电路。

052.

用verilog实现异步复位同步释放电路,支持测试模式的复位信号切换。

053.

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

054.

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

055.

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

056.

用verilog实现PWM控制呼吸灯。呼吸周期2秒:1秒逐渐变亮,1秒逐渐变暗。系统时钟24MHz,pwm周期1ms,精度1us。

057.

在clk a时钟域的一个单周期脉冲信号,如何正确的传递到clk b时钟域? 要考虑clk a和b的各种不同频率/相位的场景。

058.

用verilog实现一个同步FIFO,深度16,数据位宽8bit。

059.

用verilog实现一个异步FIFO,深度16,数据位宽8bit。

060.

用verilog实现一个异步FIFO,深度17,数据位宽8bit。

061.

FIFO深度计算: 写入时钟20MHz,读出时钟40MHz,每1000个时钟周期写入500个数据,每4个时钟周期读出1个数据,读写数据位宽一致。

062.

用verilog实现valid-ready握手协议。

module handshake_pipe (     input clk,     input rst_n,     input valid_i,     output ready_o,     input din,     output valid_o,     input ready_i,     output dout ); ... endmodule063.

用verilog实现支持valid-ready握手协议的下采样电路:每输入2个数据,输出1个数据。

module handshake_pipe_ds (     input clk,     input rst_n,     input valid_i,     output ready_o,     input din,     output valid_o,     input ready_i,     output dout ); ... endmodule064.

用verilog实现支持valid-ready握手协议的上采样电路:每输入1个数据,输出2个数据。约定clk频率高于输出数据速率。

module handshake_pipe_us (     input clk,     input rst_n,     input valid_i,     output ready_o,     input [7:0] din,     output valid_o,     input ready_i,     output [7:0] dout );     ... endmodule065.

用verilog实现支持valid-ready握手协议的分路电路:输入1路数据,输出2路数据。

module handshake_pipe_split (     input clk,     input rst_n,     input valid_i,     output ready_o,     input [7:0] din,     output valid_1_o,     input ready_1_i,     output [7:0] dout_1,     output valid_0_o,     input ready_0_i,     output [7:0] dout_0 ); ... endmodule066.

用verilog实现支持valid-ready握手协议的合并电路:输入2路数据,输出1路数据。

module handshake_pipe_merge (     input clk,     input rst_n,     input valid_0_i,     output ready_0_o,     input [7:0] din_0,     input valid_1_i,     output ready_1_o,     input [7:0] din_1,     output valid_o,     input ready_i,     output [15:0] dout ); ... endmodule067.

解释一下valid-ready握手传输中的bubble问题,如何解决?

068.

使用valid-ready多级流水时,ready信号通路上组合逻辑过长会带来什么问题?怎样解决?

069.

用verilog实现配置寄存器接口。
地址0 :可读可写RW
地址1 :只读RO
地址2 :只写,自动清0
地址3 :保留

module blk_ctrl (     input clk,     input rst_n,     input wr,     input [1:0] addr,     input [7:0] wdata,     input rd,     output [7:0] rdata ); ... endmodule070.

解释一下触发器的setup和hold,在芯片使用中如果遇到时序问题,怎样区分是setup还是hold的问题?

071.

解释一下multi cycle path

072.

用verilog实现16bit复数乘法器。

073.

把十进制数8.15转换为单精度浮点数。

074.

把十进制数-6.125转换为双精度浮点数。

075.

用verilog实现32位浮点数加法。

076.

用verilog实现16位浮点乘法。

077.

解释booth乘法器实现原理。(以radix 4为例)

078.

用verilog实现4位超前进位加法器。

079.

用verilog实现8位桶形移位寄存器。

080.

用verilog实现一个深度为16的CAM。

081.

用verilog实现8位无符号除法。

082.

用verilog实现8位定点数开平方。

083.

用verilog实现log2(x),输入x为16bit无符号数。

084.

设计1MHz正弦波发生器。

085.

用verilog实现三输入round robin仲裁器。

086.

用verilog实现图像行缓冲(line buffer),输入数据Yi为8bit,每行数据1920个,要求同时输出3行,即当前数据Y0,延迟1行对应的数据Y1,延迟2行对应的数据Y2。

087.

用verilog实现图像的二维滤波器。输入输出图像分辨率1920x1080,8bit,YUV422。滤波器为3*3,系数8bit有符号数。滤波操作只针对Y进行处理,UV直通。

088.

用verilog实现MAC单元:输入32路数据A,32路数据B,都是8bit有符号数。输出32路A乘以B的累加和。

089.

用verilog实现激活函数ReLU,输入为16bit有符号数。

090.

用verilog实现激活函数sigmoid:f(x) = 1/(1+e^-x),输入x为16bit有符号数。

091.

用verilog实现max pooling函数,kernel 7x7,数据16bit有符号数。

092.

用verilog实现排序算法。输入数据为128个16bit有符号数。

093.

用verilog实现一个APB接口的单口RAM,深度1024,位宽32bit。

094.

用verilog实现一个AHB接口的单口RAM,深度1024,位宽32bit。

095.

用verilog实现一个AXI接口的单口RAM,深度1024,位宽32bit。

096.

解释一下DMA控制器的基本功能与实现。

097.

使用verilog开发项目需要用到哪些工具?

098.

使用verilog实现APB接口的I2C模块,兼容标准协议。

099.

举例说明3条使用verilog开发项目的经验或教训。


第2季即将开始
敬请关注

[size=0em]​
发表于 2019-1-14 17:38:00 | 显示全部楼层
点赞!
发表于 2019-1-14 23:50:23 | 显示全部楼层
菜鸟一枚,好多答不上来,期待大神的解答!
发表于 2019-2-27 17:07:28 | 显示全部楼层
收藏刷题
发表于 2019-7-30 09:10:50 | 显示全部楼层
收藏了
发表于 2019-7-30 13:24:41 | 显示全部楼层
谢谢分享
发表于 2019-7-31 09:47:26 | 显示全部楼层
thank you
发表于 2019-10-29 15:00:26 | 显示全部楼层
嗯嗯嗯嗯
发表于 2019-10-29 16:46:26 | 显示全部楼层
好东西,码了
发表于 2019-10-30 10:52:10 | 显示全部楼层
坐等下一季
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-27 04:48 , Processed in 0.021608 second(s), 6 queries , Gzip On, Redis On.

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