首页 \ 问答 \ 弹簧与反应堆结合(spring integration sftp with reactor)

弹簧与反应堆结合(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
更新时间:2021-12-06 16:12

最满意答案

门级仿真包括设计原语的时序,例如触发器,因此必须遵守数据到触发器的建立和保持时间,否则触发器可能在输出上产生“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 of clk, and depending on the implementation there may be hold-time requirement for the synchronous design reset.

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 of clk and on calcstate.

相关问答

更多
  • 如果仅仅是作语法分析和综合,以及随后的仿真验证。似乎可以不安装devices。但这样就很大程度上失去了使用quartus工具的理由。毕竟,quartus是用于FPGA设计的集成工具,其直接的目的就是完成基于FPGA/CPLD器件(也就是你所谓的devices)的设计。只有有了相关的devices资源,才能够完成适配(Fitter),编程(Assembler)等编译环节,最后将生成的可下载文件下载到开发板当中,完成最终的电路设计。从这个角度来讲,devices相关资源还是要安装的。不过,可以的话,你可以依据自 ...
  • 错误的地方在timescale那里,其它地方没有错。改成: `timescale 1ns/1ns 改了以后,我用modelsim跑试了一下,可以跑出波形。 另外,需要设置一个时间限制,不然会一直跑下去停不了。再添加一点东西: initial begin #1000 $stop; end 你的资料书质量不太高,仿真工具也不太行。
  • 所以,我在EDAPlayrgound( http://www.edaplayground.com/x/Cyc )上尝试了你的代码,它看起来很好。 (如果你愿意的话,你可以自己动手)。 您正在看X ,因为在时间0,您没有为任何输入指定值(因为您在分配任何内容之前会延迟10个步骤)。 考虑删除第一个#10 ,或者在它之前放置一些分配。 ( X =未知值; Z =高阻抗,这意味着既不是1也不是0输入)。 至于在Quartus中设置它,你的方式是正确的。 So, I tried your code on EDAPl ...
  • 正如其他人已经指出的那样, 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的最终引脚分 ...
  • 门级仿真包括设计原语的时序,例如触发器,因此必须遵守数据到触发器的建立和保持时间,否则触发器可能在输出上产生“X”。 测试台代码不是用这个写的; 例如: wait until clk ='1'; reset <= '0'; 在clk上升沿之后0 ps移除reset ,并且取决于实现,可能存在同步设计reset保持时间要求。 这可以通过以“慢”时钟运行来解决,并且仅从上升的clk边缘“远”改变数据。 这是可以接受的,因为设计时序应该通过静态时序分析(STA)验证,而不是模拟; 后综合模拟只是为了让人感觉设计 ...
  • 它隐藏得非常好 - 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 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 ...

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)