SystemVerilog/Verilog的实数输入输出和常数:Cordic或者直接unsynthesizable的C表达

本文探讨了在图像处理中使用SystemVerilog/Verilog进行浮点数运算,特别是涉及指数函数如Gaussian filter时的挑战。正规方法是利用Cordic算法或厂商提供的数学库,但Cordic核主要针对以e为底的指数计算。为快速验证设计,有时会采用不可综合的C表达式。在定义输入输出时,应注意输入实数应声明为`var real 2.718`,输出则只需`real 3.14`。参考资源包括SystemVerilog和Verilog的陷阱以及相关博客文章。

因为在图像处理的时候需要用到很多filter,其中Gaussian filter是一个是exponential function,所以要用到e和**。

正规的做法是用Cordic或者xilinx/altera的math lib。


cordic核貌似只能对以e为底的数计算,e^x=coshx+sinhx,选择双曲计算sinh and cosh选项,然后把两个输出相加就是e^x结果.

可以参考http://verilog.openhpsdr.org/。上面有Cordic的分析和test,用的modelsim。路径是:E:\verilog\thesis_2014\Apr6_Conv\cordic\CORDIC Test



但为了快速检验设计,看看neural network对不对,所以暂时先不考虑cordic的设计。当然,要记住RTL是设计电路而不是程序。


参考的资料是:SystemVerilog and verilog gotcha 101 和 http://billauer.co.il/blog/2009/07/verilog-standard-short-port-declaration-output-reg-autoarg/

看到了对于input的实数要定义成:var real 2.718,而output只要real 3.14就行。

//`define ee = 2.718281828;
module exp(input clk, input var real in, output real out);
	parameter ee 
### 解决 Sublime Text 加载语法文件错误的方法 当遇到 `Error loading syntax file` 错误时,通常是因为某些插件或配置文件损坏、缺失或者存在冲突所致。以下是针对该问题的具体分析解决方案。 #### 1. **确认安装包路径是否存在** 如果提示无法加载特定的语法文件(如 `SystemVerilog.sublime-syntax`),首先需要验证对应文件是否存在于指定目录下。可以通过以下方式检查: - 打开 Sublime Text 的菜单栏,进入 `Preferences -> Browse Packages...`。 - 查找 `Packages/SystemVerilog/` 文件夹,确认其中是否有名为 `SystemVerilog.sublime-syntax` 的文件[^1]。 如果没有找到此文件,则可能是相关插件未正确安装或已被意外移除。此时可以尝试重新安装对应的插件。 #### 2. **修复或重装受影响的插件** 许多语法支持功能由第三方插件提供。对于 SystemVerilog 支持,可能依赖于专门的插件(例如 `SystemVerilog` 或其他扩展)。执行以下操作来解决问题: - 使用 Package Control 插件卸载并重新安装涉及的插件。 - 如果尚未安装 Package Control,请先通过官方指南完成其安装[^4]。 具体命令如下: ```plaintext Package Control: Remove Package (输入 SystemVerilog 并选择卸载) Package Control: Install Package (再次搜索并安装 SystemVerilog) ``` #### 3. **清理残留配置文件** 有时即使卸载了某个插件,仍可能存在遗留的配置文件干扰正常运行。这可能导致类似的加载失败错误。按照以下方法清除不必要的设置: - 进入 `Preferences -> Browse Packages...` 后定位到 User 文件夹。 - 删除任何与目标语言(此处为 SystemVerilog)相关的自定义配置文件[^5]。 注意:务必谨慎操作以免影响其他正常的个性化设定。 #### 4. **更新至最新版本** 确保使用的 Sublime Text 是最新的稳定版。旧版本可能存在兼容性缺陷从而引发此类异常情况。访问官网下载页面获取升级链接[^2]。 另外值得注意的是,在部分情况下,“Apparent recursion” 类型的消息表明内部逻辑存在问题,也可能源于过期的基础架构组件。因此保持软件本身及其附加模块均为当前推荐状态尤为重要。 --- ### 提供一段示例代码用于测试环境恢复效果 下面给出一小段简单的 Python 脚本作为例子展示如何快速验证编辑器基本工作能力: ```python def test_function(): print("Environment is working correctly.") test_function() ``` 成功编译并输出预期字符串则说明基础框架已恢复正常运作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值