所有机器人都必须传感器,计算出来和驱动。现成的x86PC为您获取了一个熟知的Linux环境来展开研发和部署。然而,PC不存在相当严重问题,现成的主板无法获取与外界的较低延后和噪声忽视相连。
USB或许就是解决问题方法,但是一旦总线辛苦,如果你通过USB相连到电机控制器,延后不会让你深感疑惑。在机箱内隐蔽着一个解决方案PCIExpress。虽然你很难寻找PCI-e电机控制器或激光雷达,但速度快,延后较低。
这就是ROPS的用武之地,可以作为PCI-e与CAN和RS485等总线之间的桥梁,您可以在电机控制器和传感器上寻找它们。由于完全所有移动机器人都必须IMU和GPS,有了ROPS这些都不是问题。
我们将在CSG325PCB中用于XilinxArtix-7XC7A35T作为ROPS的核心。35T是中档Artix部分,CSG325PCB将所有最重要的GTP收发器初始化,以便我们可以用于PCI-e相连到主机。我们计划用于的传感器是STLSM9DS1IMU,STLPS25HW气压计和uBloxNEO-M8TGPS。
将有后面板IO用作相连第三方硬件,如电机控制器和其他传感器,但我们还没确认任何细节。目前只有很少的FPGA用作IO,因此这里有很多灵活性。
在主机外壳内的夹层或柔性电缆连接器上也有可能有额外的IO。Verilog建模工具当你处置任何类型的代码时,放宽write-compile-test循环总是有协助的,尤其是当你第一次自学时。
对于SPI模块,最重要的是SPI输入的时序。为此,我们必须仿真verilog并检查输入。以下是我过去常用的工具。
编辑器我用于neovim,但它并不最重要。我强烈建议用于语法高亮,强劲的查询和更换以及跨平台功能,以便您可以随时随地用于它。BashGlue这就是魔术再次发生的地方,这个脚本以您当前正在处置的文件的形式拒绝接受一个参数,并等候它被留存。留存后,脚本不会编译器该文件,对其展开仿真,并改版GTKWave的输入。
我在这里用于verilog,但你可以在inotifywait之后用你正在处置的项目中简单的东西更换它们。这有可能是编译器,linter等。
我将它的输入留存在我工作区的左上方窗格中,这样我就可以检查经常出现的任何错误。inotifywait这显然是脚本的关键。当作为第一个参数获取给脚本的文件被重开时,如果它被关上为可用,则inotifywait解散。这样,如果你捕捉文件,或差异,它将会做到任何事情。
它会查阅文件内部以查阅否已展开变更,它只告诉文件已重开。iVerilogIcarusVerilog是一个verilog综合和仿真工具。iVerilog将源编译器为类似于中间程序集的源,然后由iVerilog工具集的另一部分vvp继续执行。
这样做到不会输入一个.lxt文件,该文件存储verilog中各种连线和寄存器的波形。在脚本中,iverilog的-o选项命名输入文件,这里我们只用于main。然后我们在main上调用vvp,并告诉他vvp将波形输入到.lxt文件。
GTKWave仿真verilog时,可以用于类似于printf的语句,也可以转储每行的状态并登记到文件中。查阅寄存器转储。
我正在用于GTKWave。在我看来,它是一个极致的软件。
当我想要检查波形时,它不会已完成我必须的一切,而不是其他任何东西。在脚本中,我们调用gconftool-2来改版波形。我不告诉他们为什么自由选择配备工具来做到这件事,但它很有效地。
本文来源:易币付官方网站-www.etiwari.com