问题标签 [shift-register]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1662 浏览

c# - 线性反馈移位寄存器效率

我有以下代码实现线性反馈移位寄存器的移位动作:

在哪里

  • Contents 是寄存器的当前内容
  • tapSequence 是 XOR 抽头序列,其中 1 代表已抽头位,0 代表未抽头位。
  • 长度是寄存器的位数。

但是,在运行 CPU 使用率测试后,这个函数占用了我运行时间的 60%(我认为这是一个相当轻量级的方法)。有没有更有效的方法来写这个?有没有办法用自己的位对 int 的内容进行异或(以便取消 for 循环)?

0 投票
0 回答
198 浏览

raspberry-pi - 移位寄存器数码时钟不显示时间

我是 Python 新手,主要做硬件。我正在尝试使用移位寄存器和 Raspberry PI 2 创建一个 Nixie 时钟库。我发现一个类似的项目是作者包含示例代码,这里http://www.smbaker.com/raspberry-pi-nixie-tube-时钟原型

硬件已设置并运行,但是我在网上找到的测试代码中有一些东西阻止了 Pi 显示时间。作为测试脚本的代码,它将循环出来以显示时间。正如我所说,我是 Pi 和 Python 的新手,我相信我遇到的障碍是在代码的末尾。数字以模式序列显示数字 0.1.2.4.8,但从不显示时间。我已经包含了下面的代码。

类 Nixie: def init (self, pin_data, pin_latch, pin_clk, digits): self.pin_data = pin_data self.pin_latch = pin_latch self.pin_clk = pin_clk self.digits = digits

def main(): try: nixie = Nixie(PIN_DATA, PIN_LATCH, PIN_CLK, 4)

如果名称== “”:主()

0 投票
1 回答
1557 浏览

verilog - 带 d 触发器的旋转移位寄存器 verilog

目前我正在尝试做这个项目,我被困在移位寄存器上。问题是,我相当肯定他们希望我们用 d 触发器来实现这一点,但我只见过简单的 if/then 移位器。

到目前为止,我已经让每个 LED 在复位信号的持续时间内模拟点亮,因为我已经将它用于输入。然而,这样做的整体目标是让每个 LED 仅在时钟的一个滴答时间内亮起,并无限旋转。

这是我的问题:如何将输入作为一个开始,以及如何使复位信号不影响后续 LED 点亮的时间?(另一个问题——我是不是做错了,以至于我现在应该放弃并以不同的方式做事?)

移位器代码:

d 触发器代码:

0 投票
1 回答
174 浏览

vector - std_logic_vector 的移位寄存器

我在这里看到了同样的问题,我尝试按照示例进行操作,但是在声明信号时遇到了错误。具体来说:

这是我的代码:

它抱怨我的信号声明,但我不明白为什么。

0 投票
1 回答
1175 浏览

spi - NodeMCU SPI 模块太快

我真的很想在我的 NodeMCU 上使用 SPI 模块。SPI 使我的代码保持干净并释放了我的一些 GPIO 引脚。我觉得它发送数据的速度太快了,我的 74HC595 跟不上。它工作了一会儿,然后停止了。

线路上似乎有很多噪音,所以我连接了逻辑分析仪,发现当我发送数据时,比特以将近 6 ns 的速度飞过线路(这太棒了)。我正在驾驶 595 和最终的步进器,它需要的数据速度较慢。我尝试在设置调用中使用时钟参数,我觉得它永远不会减慢 SPI 时钟。

有什么方法可以将时钟速度设置为对 595+步进更友好的东西?

0 投票
1 回答
718 浏览

verilog - 可综合的 Verilog 模块化移位寄存器

我正在使用不同宽度的信号进行大量流水线处理,并且想要一个 SYNTHESIZEABLE 模块,其中我可以传递 2 个参数:1)管道数(L)和 2)信号宽度(W)。

这样,我只需要实例化模块并传递 2 个值,这比通过虚拟寄存器键入负载和信号传播负载要简单和强大……容易出错等等。

我已经写了一半的verilog代码,如果我错了,请您纠正我。

0 投票
1 回答
1251 浏览

vhdl - VHDL中移位寄存器的结构设计

我在 vhdl 中做了一个移位寄存器的结构设计。当 WriteShift 为 1 时,我得到移位,当它为 0 时,移位寄存器加载价格。虽然当我在测试台中将 writeshift 设置为 1 时负载工作得很好,但我在模拟中得到了 00000。

我的代码如下:

0 投票
1 回答
3368 浏览

verilog - 我已经为基于 FSM 的串行加法器电路编写了 Verilog 代码,但是我遇到了某种语法错误

框图

设计是一个串行加法器。它采用 8 位输入 A 和 B,并在 goinput 设置为 1 时将它们以串行方式相加。运算结果存储在 9 位求和寄存器中,附有框图。我正在使用 Quartus II 13.0sp1(64 位)网络版。

错误: 错误 (10170):在 LAB9b.v(56) 靠近文本“â”的 Verilog HDL 语法错误;期待“:”或“,”我没有在代码的任何地方写这个文本“â”,但它仍然在“â”附近播下语法错误。??

以下是编写的代码:-

0 投票
1 回答
1286 浏览

verilog - 移位寄存器的 Verilog

希望就以下 Verilog 移位寄存器代码寻求帮助。以下代码提供给我,我的任务是将其转换为示意图形式。

我已经草拟了我的原理图,并附在此处作为ShiftRegister。请有人帮忙验证这是从 Verilog RTL 代码手动“合成”的正确原理图吗?谢谢。

0 投票
0 回答
92 浏览

assembly - 适合定制 LCD 硬件的 MCS-51 代码

我在硬件中为自己制作了一个字符 LCD 驱动程序(LCD 有一个 HD47780 芯片组),其中数据在 ROM 上预定义,我还制作了一个电路来加载 ROM。

在下面的第一张图片中,ROM maker 电路的一部分(我通过并行端口连接到我的计算机)连接起来,以便 ROM 上的数据引脚排列如下,从 LSB(最低有效位)到 MSB(最高有效位):

A8,A9,A10,A11,A12,A13,A14,A0,A1,A2,A3,A4,A5,A6,A7

ROM制造商

下一个图像是 LCD 驱动程序的一部分。将rom(使用rom maker制作)插入驱动器,移位寄存器用于选择地址和控制RS(LCD处于命令模式还是数据模式)。

两个移位寄存器的时钟都与微控制器的一个引脚以及一个定时器相关联,该定时器使 LCD 使能线变为高电平 220 微秒,每次时钟逻辑电平变化时都会延长时间。第一个寄存器 (INP) 的数据输入连接在一起,也连接到微控制器的另一个引脚。CLR 输入连接到高电平以启用输出。

液晶驱动器

我用我制作的 rom 测试仪测试了 rom 中的前 256 个字节的数据,输出是正确的,所以我看不出我的 rom 是问题,所以现在我看到问题出在代码上。

这是我的代码:

LCDC equ(时钟到移位寄存器 GPIO 引脚) DAT equ(移位寄存器数据输入引脚)

我只是调用该函数来发出命令:

或数据

有些命令似乎可以执行(除非我把我的地址弄混了),但是当我尝试打印一个普通字符时,我得到了一个奇怪的字符。

例如,在我的 rom 上,我用相同的字节填充了它的前 256 个字节(例如:地址 0 的值为 00h,地址 255 的值为 0FFh)。如果我执行:

我想看到一个字母“A”出现在屏幕上,但什么也没有出现。

我的编码正确吗?或者我可以改进它吗?

我正在使用来自http://plit.de/asem-51/asemw.htm的汇编器,所以我不知道是我自己还是某些汇编器有错误,我应该修改和/或消除一些满足这些汇编程序的代码。

请指教。

谢谢。