研华科技西安研发中心FPGA验证一面分享
历经笔试面试,最终面试通过拿下FPGA验证岗,整体难度适中,过程中有自己的思考,体验不错,现来还愿。
当天接待给了我一杯水,然后说,“面试官有事,先给你一张卷子做做。”晕,上来就做题,我昨天还想着呢,面试没有笔试挺不好的,不容易锻炼我的“面经”。今天却真有!
题目是: 实现一个输入输出模块,输入有:clk,rst,start,data(18位并行) 输出为:sclk,din,cs 总的说来就是将并行数据data转换为串行数据din。
首先要捕获并行输入数据:其中,clk和start可能是不同步的 clk _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ start _____________---_________________ data ______________xxxxxxxxxxxxxxxx____
这里有一个关键点:如何判断出start信号的高电平? 我的解决方法是:分别在clk的每个falling和rising的edge出读取 start信号 temp1 <= temp2; temp2 <= start; 当 temp1和temp2都为“1”时,就判断出了start信号。
徐工程师的方法是: 由于start信号一定会比一个clk时钟周期长,所以在clk的每个falling(或rising)沿读取start信号,并置位 temp1 <= start; temp2 <= start; 当 temp1和temp2都为“1”时,就判断出了start信号。
但是,我现在看他的这个方法,有一个疑问:怎么知道是用falling还是 rising沿读取start信号呢?因为clk和start不同步,而且start信号会比两个clk时钟周期长吗? 后来又问我关于串口通信协议:uart。 对于我的“无线抄表”项目和“ibm嵌入式设计大赛”,都提到了方案的可行性和成本问题。
无线抄表:如果用rs485可以实现较长距离的传输和较多设备的联接。 ibm嵌入式设计大赛:开发板的成本问题,我认为:开发阶段资源上应该尽量多,等产品开发出来了,可以计算其资源,从而量体裁衣!节约成本。
后来我又问了:公司性质,国有企业,福利不错,待遇处于ic领域中间水平。 明年公司就要搬到三元桥公司总部大楼了 我如果去就是做“fpga验证”工作,可能是跟这个徐工程做。 他们说:我不用再投简历了,我们会保持联系的,而且等经理回来了再跟我面谈。 我想到时侯就可以问一些关于:具体工资、北京户口、保险报销范围等等这些敏感问题了。
#硬件面经##面经#