1. 流程简介
- 我是两天前有FPGA公司的HR来问我实习的事情,她当时问我距离能不能接受,不过确实距离有点远(地铁通勤要将近一个半小时),然后她说给我约个时间,抽空做1个小时的题目(线上做),我就在今天下午约了时间。
- 题目有八个题,都是大题,前两个是关于低速协议的题目,还算比较简单(IIC SPI)
- 后面的六道题基本每一道都让写Verilog代码,这些代码实际上是不难的,基本都是涉及到时序的实现,都是比较简单的状态机跳转,但是有一个很大的问题就是代码很长,正常写的话肯定写不完
- 反正最后我提交了,很多题目写的都不太完善
- 上交文件以后HR说先推荐按给部门,让我等通知
2. 题目内容
2.1. 四线SPI总线包括( )信号。请分别画出SPI读和SPI写的典型时序图。
2.2. I2C总线包括( )信号。请分别画出I2C总线读、写操作的典型时序图。
2.3. 用Verilog语言实现一个led指示灯驱动逻辑,要求每1s闪烁一次(100ms亮+900ms灭),输入时钟为54MHz。
2.4. 请用verilog语言描述一个调用的异步FIFO的顶层模块,要求输入数据位宽为8比特,深度为1024字节,输出数据位宽为32比特。(只描述接口,不需要rtl实现,接口应包括fifo常用的指示信号)。
2.5. 数字电视行业有一种TS传输流信号,它由时钟tsclk、使能信号tsvalid、同步信号tsStart、数据tsdata信号组成。提供一个27MHz的系统时钟(tsclk时钟频率远低于27MHz),请用verilog语言计算TS流信号的平均码率(每秒钟的有效数据字节数)。
2.6. TS传输流信号是一种固定包长的信号,它由188字节组成,包头固定为0x47,被称为同步字节,请你用verilog语言写一个传输流循环产生模块。时序如上图,要求:TS数据格式为:0x47、0x1f、0xff、0xff、0x1、0x2、0x3、... 0xb8。每2个TS包之间要间隔16个时钟周期,系统时钟为10MHz。
2.7. 请使用verilog语言实现一个逻辑,把题(五)生成的TS流数据存到题(三)的FIFO里面,再通过一个27M的时钟把TS数据从FIFO里面读出来。
2.8. 下面是一个音频I2S总线的时序图,LRCK标识左右通道、SCLK为比特时钟、SDATA为左右声道数据。请用verilog语言把串行的SDATA数据转换为并行的24bit数据,左右通道分别输出。
3. 总结
感觉被耍了,没聊几句就快开始让我去做试题,我感觉他们就是找了很多人,然后广撒网让我们做题,欸,感觉凉凉~