使用FPGA实现比较器

ops/2024/9/22 16:06:56/

介绍

比较器就是通过比较输入的大小,然后输出给出判断。

在这个比较器中,有两个输入,三个输出。根据输出就可以判断出哪个输入值大了。


设计文件

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity comparator is
    generic(n : integer := 7);
    port( inp1,inp2 : in signed (n downto 0);
            outp1,outp2,outp3 : out std_logic);
end entity;
architecture behavior of comparator is
begin 
    outp1 <= '1' when inp1 > inp2 else '0';
    outp2 <= '1' when inp1 = inp2 else '0';
    outp3 <= '1' when inp1 < inp2 else '0';
end architecture;


测试文件

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity tb_comparator is
    generic(n : integer := 7);
    
end entity;
architecture behavior of tb_comparator is
    component comparator is
        port( inp1,inp2 : signed (n downto 0);
                outp1,outp2,outp3 : out std_logic);
    end component;
    signal inp1,inp2 : signed (n downto 0);
    signal outp1,outp2,outp3 : std_logic;
begin
    dut : comparator
    port map(inp1,inp2,outp1,outp2,outp3);
    process
    begin
        inp1 <= "01101100";
        inp2 <= "10110000";
        wait for 10ns;
        inp1 <= "11101100";
        inp2 <= "11101100";
        wait for 10ns;
        inp1 <= "01101100";
        inp2 <= "01110000";
        wait for 10ns;
    end process;
end architecture;


仿真结果


结语

实现这个比较器是很容易的,要注意使用无符号数和有符号数必须要声明std_logic_arith这个包集。上面给出了有符号数进行比较的方法,对于无符号数,只需要更改输入数据的数据类型就可以了。

有什么问题欢迎大家指出。


http://www.ppmy.cn/ops/15195.html

相关文章

MATLAB使用速成 第六章(符号计算)

一、符号运算介绍 1、符号运算的特点 &#xff08;1&#xff09;符号运算以推理方式进行&#xff0c;不受计算误差累积所带来的困扰。 &#xff08;2&#xff09;符号计算可以给出完全正确的封闭解&#xff0c;或任意精度的数值解&#xff08;封闭解不存在时&#xff09;。 …

无法连接到MongoDB Atlas 的Cloud Database

打开Mongodb网页: 选择允许任何地址连接 连接成功

探索长短期记忆网络(LSTM)在AI去衣技术中的应用

引言 随着人工智能技术的飞速发展&#xff0c;越来越多的领域开始尝试利用深度学习技术解决复杂问题。其中&#xff0c;图像处理和计算机视觉领域更是取得了显著的进展。近年来&#xff0c;AI去衣技术作为一种具有争议性的应用场景&#xff0c;引起了广大研究者和技术爱好者的…

网络协议安全:OSI七层模型分层及作用,数据封装与解封过程,数据传输过程。

「作者简介」&#xff1a;2022年北京冬奥会中国代表队&#xff0c;CSDN Top100&#xff0c;学习更多干货&#xff0c;请关注专栏《网络安全自学教程》 这一章节我们需要知道OSI分哪七层&#xff0c;每层的作用&#xff0c;知道数据在七层模型中是怎样传输的&#xff0c;封包和解…

谷歌开发者账号关联被封?解封申诉指南来了!

相信大部分在谷歌上架应用的开发者&#xff0c;已经被谷歌封号封麻了。且不少开发者普遍认为&#xff0c;一旦开发者账号被封禁&#xff0c;想要成功申诉回来的难度极大。 特别是那些因为涉及“高风险”滥用模式行为关联被封的账号&#xff0c;更是不可能申诉成功。但事实上&am…

考研日常记录(upd 24.4.24)

由于实在太无聊了 &#xff0c; 所以记录以下考研备考日常 &#xff0c; 增加一点成就感 &#xff0c; 获得一点前进动力。 文章目录 2024.4.18 周四课程情况&#xff1a;时间规划&#xff1a; 2024.4.19 周五课程情况&#xff1a;时间规划&#xff1a; 2024.4.20 周六2024.4.2…

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第八套

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第八套 部分题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共十套&#xff09;获取&#xff08;WX:didadidadidida313&#xff0c…

SEGGER Embedded Studio IDE移植FreeRTOS

SEGGER Embedded Studio IDE移植FreeRTOS 一、简介二、技术路线2.1 获取FreeRTOS源码2.2 将必要的文件复制到工程中2.2.1 移植C文件2.2.2 移植portable文件2.2.3 移植头文件 2.3 创建FreeRTOSConfig.h并进行配置2.3.1 处理中断优先级2.3.2 configASSERT( x )的处理2.3.3 关于系…