【问题标题】:Grabbing the digits of a number without using division or modulus在不使用除法或模数的情况下抓取数字的数字
【发布时间】:2011-12-29 05:08:59
【问题描述】:

我正在尝试使用 VHDL 实现一个 7 段计数器。

计数器从 0 开始,递增一个整数值,最大值为 9999。

该值被传递给一个应该将数字“拆分”为数字的块,以便我可以在多路复用的 7 段上显示它们......

我已经使用中断等多种方法在 PIC 上完成了此操作...但现在我尝试在 FPGA(确切地说是 Xilinx Spartan 3E 入门板)上执行此操作,我在实现代码时注意到我'我写过我既不能使用除法也不能使用模数,因为它们无法实现......

编辑:我知道我可以单独映射 0..9999 的值,但这还很遥远。

当然还有其他方法,但我想不出来。

非常感谢任何有关解决方法的提示!

【问题讨论】:

  • 您的号码是存储为二进制还是十进制?
  • 它是十进制的,但如果最好是二进制,我可以很容易地转换它
  • 好吧,如果您的数字是十进制的,只需提取包含每个数字的位并将它们发送到您的显示多路复用器。 LSD 是num[3:0],MSD 是num[15:12],等等
  • 酷我不知道我能做到这一点,我仍然错过了一些东西,我试过这个D0 <= count[3:0]; 并且我在那行得到';' expected 错误(之前正在编译)编辑:D0 是一个 4 位无符号输出信号
  • 没关系,我忘了语法是:D0 <= count(3 downto 0); 将测试并返回这里:)

标签: vhdl digits integer-division


【解决方案1】:

好吧,如果您的数字是十进制的,只需提取包含每个数字的位并将它们发送到您的显示多路复用器。 LSD 是 num[3:0],MSD 是 num[15:12],等等

【讨论】:

    猜你喜欢
    • 2020-07-31
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多