问题标签 [picoblaze]

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 投票
1 回答
252 浏览

assembly - 检查 16 位值是否大于 1000 RISC Picoblaze

我正在将 16 位数字转换为十进制以显示在四个 LED 显示屏上。

我想检查一个 16 位的值是否大于 1000。目前我已经实现了这个,但有时它不会输出正确的值,我不知道为什么。

0 投票
1 回答
1149 浏览

assembly - 如何反转我的秒表代码以在汇编程序中倒计时?

我已经在 Assembler 中为秒表编写了这段代码。如果您按下按钮 1,它将开始计数。如果再次按下相同的按钮,它将暂停,再次按下它将恢复秒表。按 2 号按钮重置秒表。

已经有一段时间了,因为我在 PicoBlaze Assembler 中编程,这是几年前的代码,而且由于我几年没有编程,我已经忘记了很多。但现在我需要稍微改变它,我需要你的帮助。

所以我现在想要的是有倒计时的功能。因此,当我按下按钮 1 时,它将开始计数,再按一次将暂停,再按一次恢复。但是按下按钮 2 将开始倒计时,与使用相同按钮暂停和恢复并将重置从按钮 2 移动到新按钮 3 相同。

有人可以帮我吗?谢谢。

0 投票
1 回答
1076 浏览

assembly - 如何在 Assembler 中更改功能按钮

我在汇编程序中的代码有问题。我有这些秒表。按下按钮 1 将开始计数,再次按下 ti 将暂停计数,按下按钮 2 将重置并通过翻转开关编号 1 将开始递减当前值。但是我现在需要它来使用 3 号按钮,而不是 1 号开关。我已经有一段时间没有编程了。有人可以帮我吗?谢谢

0 投票
2 回答
507 浏览

linux - Xilinx ISE iMPACT 能否像 Adept 那样将 SVF 写入 PicoBlaze?

我正在学习 VHDL 课程,并且能够在 Linux 中使用 ISE 和 Digilent 工具链玩得相对不错……直到尝试重新刷新 PicoBlaze 程序。有关详细信息,我目前正在运行和定位,

  • Fedora 21 64 位 (3.19.3-200.fc21.x86_64)
  • Digilent 的 Nexys2 开发板(带有 Spartan3)
  • 赛灵思 ISE 14.7
  • Adept 2.16.1 运行时
  • Adept 2.2.1 实用程序

到目前为止,我已经能够在 Linux 中运行 ISE 并使用 iMPACT 对 Nexys2 位文件进行编程,但目前的项目是为 PicoBlaze 软核处理器编写一个汇编程序,编译和更新运行向量的内存,而无需必须重新合成任何 VHDL。

使用Kris Chaplin 帖子中的步骤,我可以将 PSM 编译为 HEX,然后将该 HEX 文件转换为 dosbox 中的 SVF。从这里我可以在 Windows 中使用 Digilent 的 Adept 工具来编写一个 top_level.bit 文件,该文件已经合成了 PicoBlaze,我也可以在 Linux 中的 ISE 的 iMPACT 中执行此操作。设计运行后,我可以使用 Adept 将 SVF 文件编程到设计的运行内存中,一切正常。但是,尝试在 Linux 中将 SVF 加载到 iMPACT 会引发异常,

例外:iMPACT:SVFYacc.c:208:1.10 - 数据不匹配。

我在网上发现的唯一一个与该错误有关的问题表明应该有一个需要删除的“@”符号,但我在 SVF 中的任何地方都没有看到任何“@”。

我还尝试将 SVF 转换为 XSVF。iMPACT 在加载 XSVF 时不会引发错误,但编程/执行 XSVF 会冻结设计而不是运行新程序。

Adept 在 Linux 中没有我见过的类似 GUI,只有一个命令行工具“djtgcfg”。就像 iMPACT 一样,我已经能够很好地对 toplevel.bit 文件进行编程

$ djtgcfg prog -d Nexys2 -i 0 -f ../../toplevel.bit

但是尝试使用相同的调用对 svf 文件进行编程似乎没有任何影响。它说应该需要几分钟并立即报告“编程成功”,但我没有看到设备上有任何变化。

如果可以的话,我真的很想将我的环境全部保留在 Linux 中,我的笔记本电脑上没有足够的空间在两个虚拟机之间进行切换。

是否可以使用 iMPACT 将 SVF 文件写入 Nexus2?或者我可以/应该以不同的方式使用 Adept 实用程序吗?

有没有人让这个工作?万分感谢!

0 投票
1 回答
106 浏览

assembly - 如何更改 m4 的 --synclines 选项的注释符号?

我正在使用m4带有命令行选项的预处理器--synclines。此选项在每个展开的多行之后发出#line <nn>行。

例子:

结果:

因为 sr0(reg_0, 3) 起源于第 2 行,所以 m4#line 2在每次展开后添加。

如何将评论符号更改#;, 因为汇编器不支持#作为注释符号。

0 投票
0 回答
333 浏览

vhdl - PicoBlaze 8 位微控制器跳转和调用指令

我是一名学生,我必须根据此文档XAPP213创建一个 PicoBlaze 8 位微控制器。

当我必须运行跳转或调用指令时出现问题:

当我跳转或调用下一条指令时,我被迫成为 NULL 指令,因此我的程序计数器(女巫给了我我的新地址)保持相同的含义,即他持有相同地址 2 个时钟,并且读取指令的两倍女巫我跳了或我打电话。

我能做些什么不让这种情况发生?

如果有帮助,这是我的程序计数器代码:

这是它的外观框图: 程序计数器框图

跳跃:

来电:

对于 NULL 指令:

0 投票
1 回答
1380 浏览

c-preprocessor - 如何抑制 cpp 中的“缺少终止字符”警告?

我正在尝试使用 cpp(ANSI-C 预处理器)来预处理一些非 ANSI-C 文件。

这些文件包含 PicoBlaze 语法中的汇编指令。PicoBlaze 用于'd注释文字的基数。我想用 cpp 预处理我的文件。

我得到几个:

警告。如何禁用'cpp 中(或所有字符)的终止字符检查?

这是我的命令行调用:

0 投票
1 回答
1022 浏览

graphics - VHDL - 从 VGA 的帧缓冲区读取

我有一个 FPGA 学校项目,但遇到了一些问题。我们使用的是 Digilent 的 Nexys2 板(Xilinx XC3S500E FPGA)。

我们构建了一些控制器,包括带有帧缓冲区的 VGA (640x480)。至少我们称它为帧缓冲区 - 它实际上是一个分布式 30x40 RAM,用于存储要显示的像素(1 位 - “一个正方形”,所以我们实际上有 30 x 40 的分辨率,没有颜色)。

然后我们使用了 8 位 Picoblaze 微控制器内核,现在我们必须构建一个 Snake 游戏(你知道,旧诺基亚的那个)。现在我的问题是 Picoblaze 只有一个 64 字节的暂存器 RAM,所以如果我把它放在里面,蛇就不会变得很长。

所以我想我可以从 VGA 的 RAM 中读取蛇的位置,但我不知道如何,因为 VGA 正在从中读取,并且还存在寻址或读取整行数据的问题(picoblaze 有 8 位进港)。这是过程:

RAM 组件及其实例:

这在 PC 中是如何解决的?从图形卡的内存中读取是否常见?我在这里有什么选择?我可以使用带有两个时钟的块 RAM,一个用于 VGA 的读取,另一个用于 picoblaze,但我不知道也找不到如何正确生成另一个时钟信号。

0 投票
0 回答
64 浏览

architecture - micro8 和 pacoblaze3 的区别以及 micro8 的使用方法

我正在使用 pacoblaze3 在 FPGA 中实现一个硬件项目(Verilgo)。一切正常,然后我听说 Micro8 可以提供更快的速度。我想将软处理器切换到 Micro8。我发现 Micro8 具有与 pacoblaze3 完全相同的接口,所以我之前只是将 pacoblaze3 模块更改为 Micro8 模块:

我很确定我的 Micro8 源文件是正确的。我从麻省理工学院的讲义中得到它。当我从 PacoBlaze3 切换到 Micro8 时,有什么需要更改的吗?

0 投票
0 回答
608 浏览

assembly - 了解汇编中的乘法

我试图了解这段汇编代码是如何进行 8 位乘法的。我确实知道每一行的作用,但我不明白它是如何产生整个乘法的。

你能解释一下它是如何产生乘法的吗?提前致谢