弹簧与反应堆结合(spring integration sftp with reactor)
这个问题是我发布的上一个问题的延续。 我想创建一个github项目来确认行为,并可能找出某种解决方案。 这是github项目
反应器的弹簧支持似乎包含在reactor 2.x版本中,弹簧集成sftp使用1.1.4版本的reactor,并引用一个StringUtils类,该类已被移动到reactor 2+版本中的不同包中。
似乎这个版本冲突在SI 4.2中解决之前是不可避免的,所以我希望得到一些关于如何使用reactor 1.1.4并重新创建与弹簧反应器支持相同/类似的反应堆配置的建议(在此项目)。 这样,SI sftp也会起作用。
This question is sort of continuation of a previous question that I posted. I wanted to create a github project to confirm the behavior and possibly figure out some kind of resolution. Here is the github project
Spring support for reactor seems to be included in reactor 2.x versions and spring integration sftp uses 1.1.4 version of reactor and references a StringUtils class which has been moved to a different package in reactor 2+ versions.
It seems that this version conflict is simply unavoidable until its resolved in SI 4.2 so I am hoping to get some suggestions on how I can use reactor 1.1.4 and recreate the same/similar reactor configuration as I have with spring reactor support (in this project). This way SI sftp will work too.
原文:https://stackoverflow.com/questions/29934964
最满意答案
门级仿真包括设计原语的时序,例如触发器,因此必须遵守数据到触发器的建立和保持时间,否则触发器可能在输出上产生“X”。
测试台代码不是用这个写的; 例如:
wait until clk ='1'; reset <= '0';
在
clk
上升沿之后0 ps移除reset
,并且取决于实现,可能存在同步设计reset
保持时间要求。这可以通过以“慢”时钟运行来解决,并且仅从上升的
clk
边缘“远”改变数据。 这是可以接受的,因为设计时序应该通过静态时序分析(STA)验证,而不是模拟; 后综合模拟只是为了让人感觉设计没问题,但通过测试用例验证设计时序是不现实的。您也可以考虑将这些过程编写为时钟过程或组合过程,因为这通常会使设计更容易编写,读取和调试。
calc
过程是在clk
上升沿和calcstate
上更新的过程的示例。Gate-level simulation includes timing for design primitives, for example flip-flops, so setup and hold time for data to flip-flops must be respected, and otherwise the flip-flops may generate 'X' on the output.
The test bench code is not written with this in mind; for example:
wait until clk ='1'; reset <= '0';
The
reset
is removed 0 ps after rising edge ofclk
, and depending on the implementation there may be hold-time requirement for the synchronous designreset
.This can be addressed by running at a "slow" clock and only change data "far" from the rising
clk
edge. This is acceptable since design timing should be verified through Static Timing Analysis (STA) and not simulation; post-synthesis simulation is only to get a good feeling that the design is OK, but it is unrealistic to verify design timing through test cases.You may also consider writing the processes as either clocked process or combinatorial process, since this generally will make design easier to write, read, and debug. The
calc
process is an example of a process both updating on rising edge ofclk
and oncalcstate
.
相关问答
更多-
quartus 安装的devices是干什么用的?可以不安装吗?[2022-10-18]
如果仅仅是作语法分析和综合,以及随后的仿真验证。似乎可以不安装devices。但这样就很大程度上失去了使用quartus工具的理由。毕竟,quartus是用于FPGA设计的集成工具,其直接的目的就是完成基于FPGA/CPLD器件(也就是你所谓的devices)的设计。只有有了相关的devices资源,才能够完成适配(Fitter),编程(Assembler)等编译环节,最后将生成的可下载文件下载到开发板当中,完成最终的电路设计。从这个角度来讲,devices相关资源还是要安装的。不过,可以的话,你可以依据自 ... -
新手求教:quartus verilog 关于timescale的问题。。[2023-10-26]
错误的地方在timescale那里,其它地方没有错。改成: `timescale 1ns/1ns 改了以后,我用modelsim跑试了一下,可以跑出波形。 另外,需要设置一个时间限制,不然会一直跑下去停不了。再添加一点东西: initial begin #1000 $stop; end 你的资料书质量不太高,仿真工具也不太行。 -
从Quartus启动的Modelsim仿真无法正常工作(Simulation of Modelsim launching from Quartus doesn't work properly)[2022-06-02]
所以,我在EDAPlayrgound( http://www.edaplayground.com/x/Cyc )上尝试了你的代码,它看起来很好。 (如果你愿意的话,你可以自己动手)。 您正在看X ,因为在时间0,您没有为任何输入指定值(因为您在分配任何内容之前会延迟10个步骤)。 考虑删除第一个#10 ,或者在它之前放置一些分配。 ( X =未知值; Z =高阻抗,这意味着既不是1也不是0输入)。 至于在Quartus中设置它,你的方式是正确的。 So, I tried your code on EDAPl ... -
使用Quartus Prime的“多个恒定驱动器”错误Verilog(“Multiple Constant Drivers” Error Verilog with Quartus Prime)[2022-12-05]
正如其他人已经指出的那样, OF_Err和UF_Err是由两个始终合法的块组成的驱动程序。 我建议像Arvind建议的那样创建两个额外的of_Err和uf_Err变量。 不过,我建议保持OF_Err和UF_Err为失败。 组合块中的if (Enable)推断Y , c和*_Err作为电平敏感锁存器。 我非常怀疑这是你的意图。 我建议将if (Enable)移入同步始终模块,并将组合逻辑保持为纯组合逻辑。 c是一个简单的赋值,所以将它作为一个线而不是带简单赋值语句的reg可能更有意义。 它可以在组合块中,但我 ... -
使用Quartus II GUI进入File => Convert Programming Files,其中.rbf然后可以被选择为输出文件,并且.sof可以作为输入文件给出。 可以从GUI中保存转换设置,以用于命令行中 > quartus_cpf -c convert_sof_to_rbf.cof With Quartus II GUI go to File => Convert Programming Files, where .rbf can then be selected as output f ...
-
A)您需要编辑* .qsf文件,并添加类似于以下内容的行: set_location_assignment PIN_AP30 -to qdr_q[35] B)虽然我有时会在设计的早期阶段使用引脚规划器,但是在修改引脚,添加或删除设计中的VHDL文件等时,我几乎都是直接编辑qsf文件。为了完全安全,在进行大量更改时(特别是优化或编译器设置)我将确保Quartus未运行。 自从Quartus出现以来,我一直以这种方式工作,并没有遇到任何问题。 编译设计之后,您可以参考* .pin文件来查看FPGA的最终引脚分 ...
-
Quartus Post综合中的问题 - 输出为xxxxxxxx(Issue in Quartus Post synthesis — output is obtaining as xxxxxxxx)[2023-03-09]
门级仿真包括设计原语的时序,例如触发器,因此必须遵守数据到触发器的建立和保持时间,否则触发器可能在输出上产生“X”。 测试台代码不是用这个写的; 例如: wait until clk ='1'; reset <= '0'; 在clk上升沿之后0 ps移除reset ,并且取决于实现,可能存在同步设计reset保持时间要求。 这可以通过以“慢”时钟运行来解决,并且仅从上升的clk边缘“远”改变数据。 这是可以接受的,因为设计时序应该通过静态时序分析(STA)验证,而不是模拟; 后综合模拟只是为了让人感觉设计 ... -
从命令行使用Quartus(Using Quartus from command line)[2023-01-29]
它隐藏得非常好 - Quartus-II手册第13.0版,第2-10页(或搜索ASSIGNMENT_FILES) - 生成一个示例Makefile。 它似乎有点烂 - 我已经删除了ASSIGNMENT_FILES的东西,而且这些邮票是多余的(你可以检查日志文件),但这是一个开始,基本结构起作用。 It's very well hidden - Quartus-II Handbook Version 13.0, page 2-10 (or search ASSIGNMENT_FILES) - produces ... -
你要问的是为RunStop创建一个触发器,它必须由两个不同的时钟信号计时:BASECLK_IN和START_STOP 这个问题有多种解决方案: 您可以定义RunStop的行为,使其不再由两个源计时 创建两个版本的RunStop,每个时钟1个,并在稍后组合它们(异步)。 What you are asking is for a flipflop to be created for RunStop that has to be clocked by two distinct clock signals: BAS ...
-
使用Altera Quartus II将* .vhdl编译到库中(Compiling *.vhdl into a library, using Altera Quartus II)[2023-08-01]
使用Altera Quartus II GUI,您可以通过名为“Files”的“Project Navigator”选项卡将“fixed_float_types_c.vhdl”,“fixed_pkg_c.vhdl”和“float_pkg_c.vhdl”文件添加到项目中。 见下图。 添加文件时,可以在“属性”下指定目标库。 见下图。 您还可以修改项目的Quartus II设置(“.qsf”)文件,并添加以下行: set_global_assignment -name VHDL_FILE fixed_float ...