北京多铁克FPGA笔试题目

news2024/11/17 9:56:19

1、使用D触发器来实现二分频

在这里插入图片描述

在这里插入图片描述

2、序列检测器,检测101,输出1,其余情况输出0

在这里插入图片描述

module Detect_101(
	input		clk,
    input		rst_n,
    input		data,		//输入的序列
    
    output	reg 	flag_101	//检测到101序列的输出标志
);
    
parameter	S0 = 2'd0;
    		S1 = 2'd1;
    		S2 = 2'd2;
    		S4 = 2'd3;
    
    reg		[1:0] state, n_state;
    
    //序列检测器,输出只与当前状态有关,而与当前输入无直接关系,所以是Moore型状态机
    //第一段状态机,时序逻辑,描述状态转移和复位
    always@(posedge clk or negedge rst_n) begin
        if(!rst_n)
            state <= S0;
        else
            state <= n_state;
    end
    
    //第二段状态机,组合逻辑
    always@(*) begin
        case(state)
            S0 : 
                n_state = (data) ? S1 : S0;
            S1 :
                n_state = (data) ? S1 : S2;
            S2 :
                n_state = (data) ? S3 : S2;
            default :
                state = S0;
        endcase
    end
    
    //第三段状态机,Moore型状态机,组合逻辑,根据当前状态确定输出值
    always@(*) begin 
        if (!rst_n)
            flag_101 = 0;
       else if(state==S3)
            flag_101 = 1;
        else 
            flag_101 = 0;
        
    end
    
    
    

3、255 & 254= ?

4、什么是关键路径,如何优化

关键路径通常是指同步逻辑电路中,组合逻辑时延最大的路径(这里我认为还需要加上布线的延迟),也就是说关键路径是对设计性能起决定性影响的时序路径。

优化

1): 组合逻辑中插入寄存器(插入流水线)

组合逻辑的延时过长,就会成为关键路径,这时可以考虑在该路径上插入额外的寄存器,这种方法也称为插入流水线,多用于高度流水的设计中。

2):寄存器平衡(重定时Retiming)

在不增加寄存器个数的前提下,通过改变寄存器的位置来优化关键路径

image-20230802105255438

3):消除代码优先级(case代替if…else)

5、建立时间(setup time)和保持时间(hold time)

setup time:是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被稳定的打入触发器,Tsu就是指这个最小的稳定时间。

hold time :是指在触发器的时钟上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被稳定的打入触发器,Th就是这个最小的保持时间。

6、什么是竞争和冒险? 如何判断?如何消除?

将这种两个逻辑信号同向相反的逻辑电平跳变的现象称为竞争。(竞争一定要在同一个门的输入有两个信号,并且这两个信号是朝着相反的方向跳变)。

但是两个信号的竞争现象不一定会产生尖峰脉冲。因此竞争冒险现象被解释为由于竞争在电路输出端可能产生尖峰脉冲的现象。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b98c1cml-1691551261798)(C:\Users\vers\AppData\Roaming\Typora\typora-user-images\image-20230802115335054.png)]

消除竞争-冒险现象的方法

1.在输出端接入滤波电容(面试题)

2.单独引入一个选通脉冲

3.修改逻辑设计

7、实现异步复位和同步释放,用verilog语言实现。

异步复位

异步复位缺点:

  1. 复位信号容易受到外界的干扰,如毛刺等影响;

  2. 复位信号释放的随机性,可能导致时序违规,倘若复位释放时恰恰在时钟有效沿附近,就很容易使电路处于亚稳态

异步复位的优点:

  1. 无需额外的逻辑资源,实现简单;

  2. 复位信号不依赖于时钟。

异步复位是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。

always @ (posedge clk or negedge rst_n)

         if(!rst_n) b <= 1'b0;

         else b <= a;

同步复位

同步复位是指只有在时钟上升沿到来时才会对复位信号进行采样,也就是只有在时钟上升沿时,复位信号才有效.

always @ (posedge clk)

         if(!rst_n) b <= 1'b0;

         else b <= a;

那么同步复位和异步复位到底孰优孰劣呢?

只能说,各有优缺点。同步复位的好在于它只在时钟信号clk的上升沿触发进行系统是否复位的判断,这降低了亚稳态出现的概率;它的不好上面也说了,在于它需要消耗更多的器件资源,这是我们不希望看到的。FPGA的寄存器有支持异步复位专用的端口,采用异步复位的端口无需额外增加器件资源的消耗,但是异步复位也存在着隐患,过去从没有意识到也没有见识过。异步时钟域的亚稳态问题同样的存在与异步复位信号和系统时钟信号之间。

将两者结合,取长补短

异步复位、同步释放

就是在复位信号到来的时候不受时钟信号的同步,而是在复位信号释放的时候受到时钟信号的同步。


//异步复位,同步释放//
module Rst_gen (
    input      clk,
    input      rst_async_n,
    output reg rst_sync_n
);

reg rst_s1;

always @(posedge clk or negedge rst_async_n) begin
   if(!rst_async_n) begin
       rst_s1     <= 1'b0;
       rst_sync_n <= 1'b0;
   end
   else begin
       rst_s1     <= 1'b1;
       rst_sync_n <= rst_s1;
   end
end

endmodule


8、烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?烧一根不均匀的绳,从头烧到尾总共需要1个小时.现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?

9、(钻石问题)一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从一楼到十楼,每层楼电梯门都会打开一 次,只能拿一次钻石,问怎样才能拿到最大的一颗?

10、空水壶一个5升,一个6升怎么得到3升的水

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/852979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从金蝶云星空到金蝶云星空通过接口配置打通数据

从金蝶云星空到金蝶云星空通过接口配置打通数据 对接系统金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践&#xff0c;面向事业部制、多地点、多工厂等运营协同与管控型企业及集团公司&#xff0c;提供一个通用的ERP服务平台。K/3Cloud支持的协同应…

【LeetCode】数据结构题解(12)[用栈实现队列]

用栈实现队列 &#x1f609; 1.题目来源&#x1f440;2.题目描述&#x1f914;3.解题思路&#x1f973;4.代码展示 所属专栏&#xff1a;玩转数据结构题型❤️ &#x1f680; >博主首页&#xff1a;初阳785❤️ &#x1f680; >代码托管&#xff1a;chuyang785❤️ &…

flask使用cookie (设置cookie与查看cookie内容)

1.flask包cookie的使用 设置cookie app.route(/set_cookie) def set_cookie():resp make_response(Setting cookie)resp.set_cookie(username, John)return resp查看cookie: app.route(/get_cookie) def get_cookie():username request.cookies.get(username)return Welco…

gazebo 导入从blender导出的dae等文件

背景&#xff1a; gazebo 模型库里的模型在我需要完成的任务中不够用&#xff0c;还是得从 solidworks、3DMax, blender这种建模软件里面在手动画一些&#xff0c;或者去他们的库里面在挖一挖。 目录 1 blender 1-1 blender 相关links 1-2 install 2 gazebo导入模型 2-1 g…

使用imu_tools对imu_raw进行滤波处理

文章目录 1 前言2 安装3 查找自己的IMU话题4 imu_tools滤波 1 前言 imu_filter_madgwick&#xff1a;一种滤波器&#xff0c;可将来自常规IMU设备的角速度&#xff0c;加速度和磁力计读数&#xff08;可选&#xff09;融合到一个方向中。基于工作&#xff1a;http://www.x-io.…

电力系统电流三段式保护MATLAB仿真模型

整体模型如下&#xff1a; Matlab/Simulink搭建的电力系统电流保护模型采用辐射型单电源供电的运行方式 Ⅰ段保护的搭建 Ⅰ段保护为瞬时速断保护&#xff0c;根据Ⅰ段整定原则确定整定值。线路发生短路故障时&#xff0c;短路电流急剧增大&#xff1b;超过设置的整定值时&…

lokibot样本分析

火绒剑行为监控 行为监控 1.主程序在temp文件夹下释放frhdgr.exe 2.并创建进程 参数为 C:\Users\xxx\AppData\Local\Temp\frhdgr.exe C:\Users\xxx \AppData\Local\Temp\vxogkynyop 3.主进程退出 4.frhdgr.exe自我删除 并释放C:\Users\xxx\AppData\Roaming\F503CB\B28854…

【ARM Cache 系列文章 8 -- ARM DynamIQ 技术介绍

文章目录 DynamIQ 技术背景DynamIQ技术详解DynamIQ 与 big.LITTLEDynamIQ cluster 分类硬件支持 DynamIQ为什么适合人工智能&#xff1f; DynamIQ 技术背景 2017年3月21日下午&#xff0c;ARM在北京金隅喜来登酒店召开发布会&#xff0c;正式发布了全新的有针对人工智能及机器…

推动多云管理平台发展的因素简单分析

随着云计算的快速发展&#xff0c;上云企业的不断增加&#xff0c;使用多云管理平台企业也在快速增加&#xff0c;多云管理平台发展越来越迅速。但还有不少人不明白为什么多云管理平台发展会这么快&#xff0c;推动多云管理平台发展的因素有哪些&#xff1f;今天我们大家就来简…

/proc directory in linux

Its zero-length files are neither binary nor text, yet you can examine and display themUnder Linux, everything is managed as a file; even devices are accessed as files (in the /dev directory). Although you might think that “normal” files are either text …

windows11 svn 找不到clean up选项

刚开始使用windows 11 系统&#xff0c;在更新项目时遇到冲突&#xff0c;提示clean up&#xff0c;于是在项目点击右键svn里没找到clean up 这项&#xff0c;后来才知道需要在settings里勾选才能有&#xff0c;如下图&#xff1a;

stm32_断点调试无法进入串口接收中断

先说结果&#xff0c;可能是stm32调试功能/keil软件/调试器&#xff08;试过STLINK和JLINK两种&#xff09;的问题&#xff0c;不是代码&#xff1b; 1、入坑 配置完串口后&#xff0c;可以发送数据到串口助手&#xff0c;但不能接收数据并做处理&#xff0c;所以第一步&…

低代码培训实录:个性化策略助力企业成长

比起培训总监&#xff0c;其实我更愿意将自己看作是 1 个有 5 年经验的低代码开发爱好者。 ​ 作者介绍 胡杰&#xff0c;万应低代码培训总监、产品专家&#xff0c;主导过多个百万级低代码项目交付。 这几年来&#xff0c;我亲眼见证了低代码平台在国内的崛起&#xff1a;从最…

ESP8266_RTOS_SDK AP和Station功能实现

一、开发环境搭建 SDK开发工具集选择乐鑫配置&#xff1a;VirtualBox Linux 交叉编译工具 使用的是以下这块开发板 VirtualBox下载地址 Lubuntu 镜像下载地址Lubuntu是一个轻量级系统&#xff08;由乐鑫官方提供&#xff09; source insight 编辑代码 为了便于我们开发&…

微信-网页授权

参考文档 基础配置 代码测试说明测试公众号配置你本地的ip 完整的代码在文字末尾 下载微信的开发者工具 公众号AppId以及AppSecret的申请,并可以获取到token 注意 回调地址需要和js安全域名配置为同一个 授权地址必须在微信执行(本地在微信的开发工具进行执行) 授权地址…

卷积神经网络实现彩色图像分类 - P2

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;365天深度学习训练营-第P2周&#xff1a;彩色识别&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子…

网络嗅探,大神都在用这10个抓包工具

下午好&#xff0c;我的网工朋友。 前两天发了一篇网工能干的工作大科普&#xff0c;没看过的看这&#xff1a;《不得不说&#xff0c;网工能干的活也太多了吧》。 然后有小友就说&#xff0c;里面的有些工作岗位要求&#xff0c;自己不知道从哪去补充知识&#xff0c;希望可…

【Java并发】synchronized关键字的底层原理

文章目录 1.synchronized作用2.synchronized加锁原理3.monitor锁4.synchronized锁的优化4.1.自适应性自旋锁4.2.偏向锁4.3.轻量级锁4.3.重量级锁 5.总结 1.synchronized作用 synchronized是Java提供一种隐式锁&#xff0c;无需开发者手动加锁释放锁。保证多线程并发情况下数据…

dubbo之高可用

负载均衡 概述 负载均衡是指在集群中&#xff0c;将多个数据请求分散到不同的单元上执行&#xff0c;主要是为了提高系统的容错能力和对数据的处理能力。 Dubbo 负载均衡机制是决定一次服务调用使用哪个提供者的服务。 策略 在Dubbo中提供了7中负载均衡策略&#xff0c;默…