我正在创建一个 VHDL 项目(Xilinx ISE for Spartan-6),需要在定点/浮点中使用十进制“实型”数字(我希望定点就足够了)。
作为 VHDL 的新手,我发现非常困难的方法是real综合不支持非常量类型,所以我开始寻找 IP 核或库来解决这个问题。
到目前为止,我找到了 3 个选项;
1) Xilinx 提供的浮点 IP 核
2) David Bishop 编写的可下载的“ieee_proposed”库在这里找到
3) 在尝试解决如何“创建”一个包含 David Bishops 文件的新库的过程中花费了大量时间后,我快速浏览了默认IEEE库并看到它包含ieee.fixed_generic_pkg和ieee.fixed_pkg包。
我的问题是 - 在这两个库中 - 使用哪一个是明智的?一个适合合成而一个不适合,还是一个比另一个更老?然后如果提供了浮点,那么Xilinx提供的浮点IP核有没有真正的指向?
我已经浏览了许多试图添加库的人的问题ieee_proposed,但似乎没有人提到它们似乎已经存在于现有的IEEE.
非常感谢您的帮助!
============更新(基本上是我自己努力解决的)==================
我实际上无法使用ieee.fixed_pkg- 并且尝试这样做会给我错误Cannot find <fixed_pkg> in library <ieee>。
在 C:\Xilinx\14.7\ISE_DS\ISE\vhdl\xst\nt 找到 ieee 库后,我发现它fixed_pkg实际上位于 ieee_proposed。但是,这仍然会引发相同的错误!
我们正在分析用于控制系统软件的 PTP,并使用 2 台个人计算机的小型设置来测量 PTP 时钟同步的准确性,其中一台作为主机,另一台作为从机。我们目前的设置非常粗糙,我们还没有特级大师。问题是我们的准确度数字(正如我们目前测量的那样,可能不正确)与 PTP 协议声称的标准数字不匹配,并且变化幅度为 10。
作为分析的一部分,我们正在尝试硬件和软件时间戳,并尝试衡量两者的准确性。
我们正在使用 ptp4l 和 ph2sys v1.8 工具。我们当前的准确度测量基于 ptp4l 进程报告的主从偏移。(ptp4l 还报告路径延迟,我们目前不使用这些数字。这些数字在精度测量中是否有任何意义?)
在硬件时间戳中,我们从主设备获得了 >1000 纳秒的偏移量,这远大于 PTP H/W 时间戳约 50 ns 的预期值。
对于软件时间戳,我们从主设备获得预期的偏移量 <100 ?s。

设置和执行的详细信息:
主控: Dell Latitude E6220(Intel 82579LM 千兆以太网控制器)- CentOS7
从机: Dell Latitude E6320(Intel 82579LM 千兆以太网控制器)- CentOS7
网络:速度为 1 GBPS 的以太网电缆
Ethtool 输出:
能力:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
Run Code Online (Sandbox Code Playgroud)
PTP 硬件时钟:0
硬件传输时间戳模式:
off (HWTSTAMP_TX_OFF)
on (HWTSTAMP_TX_ON)
Run Code Online (Sandbox Code Playgroud)
硬件接收过滤器模式:
none (HWTSTAMP_FILTER_NONE)
all (HWTSTAMP_FILTER_ALL)
ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC) …Run Code Online (Sandbox Code Playgroud) 根据IEEE引用风格参考,如果我们引用URL,也应该指示URL的访问时间.
有人在使用BibTeX时知道如何表明这一点吗?
IEEE 754 浮点数能否用多个位排列表示完全相同的值?
例如:
128 exp 3 == 1024.0
256 exp 2 == 1024.0
1024 exp 0 == 1024.0
只要净值最终看起来相同,IEEE 754 标准是否认为不同的位排列在比较时值相等?
我正在研究一些自定义压缩算法,了解是否有多种方法来表示相同的值(为了增强压缩的目的)非常有用。
以下C++程序预计会输出0.300000000000000040000:
cout << setprecision(40) << (0.1 + 0.2) << endl;
Run Code Online (Sandbox Code Playgroud)
但是以下C#代码:
System.Console.WriteLine("{0:F40}", 0.1+0.2);
Run Code Online (Sandbox Code Playgroud)
......未满意地输出0.3000000000000000000000000000000000000000,而它(预期)评估0.1+0.2 == 0.3为False.
'4'在哪里,我该如何输出?
我想使用多年前使用PLI 1.0开发的PLI例程.之前工作得很好.但是当我尝试使用较新版本的ModelSim Verilog模拟器运行时,我收到以下错误消息:
#**警告:(vsim-8668)IEEE已弃用tf_nodeinfo.虽然仍然部分支持,但memoryval_p将始终设置为空指针.
#:PDK_top.v(102)
由于PLI例程使用tf_nodeinfo并且模拟失败.我试图弄清楚如何修复这个问题,但我找不到任何推荐的方法来替换过时的tf_nodeinfo.
任何人都可以给我一个我应该用来应对这种情况的策略吗?PLI例程的所有源代码都可用.
另外,我很好奇为什么IEEE决定放弃tf_nodeinfo.
我一直在使用 Mendeley 的 Microsoft Word 插件来轻松引用我的 Mendeley 桌面库中的论文。
但是,我注意到参考书目/引文的 IEEE 格式在引用会议记录和论文方面是不正确的。
关于 IEEE 引文指南:http : //www.ieee.org/documents/ieeecitationref.pdf
它表明会议所在的城市应包括在会议论文的引用中。然而,Mendeley 的 IEEE CSL 文件不包括这个细节。
<macro name="event">
<choose>
<if type="paper-conference speech" match="any">
<choose>
<!-- Published Conference Paper -->
<if variable="container-title">
<group delimiter=", ">
<group delimiter=" ">
<text term="in"/>
<text variable="container-title" font-style="italic"/>
</group>
<text variable="event-place"/>
</group>
Run Code Online (Sandbox Code Playgroud)
应改为:
<macro name="event">
<choose>
<if type="paper-conference speech" match="any">
<choose>
<!-- Published Conference Paper -->
<if variable="container-title">
<group delimiter=", ">
<group delimiter=" ">
<text term="in"/>
<text variable="container-title" font-style="italic"/>
</group> …Run Code Online (Sandbox Code Playgroud) 我想弄清楚在ieee 754中存在多少不同的整数.我得到的数字是1778384895但我找不到任何资源来检查自己.非常感谢提前.
我正在研究一个平台,当将浮点数与零进行比较时,它会有可怕的停顿.作为优化,我看到使用了以下代码:
inline bool GreaterThanZero( float value )
{
const int value_as_int = *(int*)&value;
return ( value_as_int > 0 );
}
Run Code Online (Sandbox Code Playgroud)
看着生成的组件,档位消失了,功能更加高效.
这有用吗?我很困惑,因为IEEE技巧的所有优化都使用SIGNMASKS和许多AND/OR操作(例如http://www.lomont.org/Math/Papers/2005/CompareFloat.pdf).对有符号int的强制转换是否有帮助?在简单的线束中进行测试没有发现问题.
任何见解都会很好.
我无法理解这些指数:
0000 0000= -126而不是-127(即0-127)?
1111 1111多少?0 1111 1111 0000 0000 0000 0000 0000 000等于无穷大?我对这一切都很陌生,所以请用简单的术语解释!谢谢!