- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于 SystemVerilog (SV) 用于编程芯片和模拟 SV 代码的大量工作。这种语言结构的经济性让我有点困惑:SV Reference states 的第 9.2.2 节
“always 过程有四种形式:always、always_comb、always_latch 和 always_ff。所有形式的 always 过程在整个模拟过程中不断重复。”
当然,这些构造也指定了组合逻辑和锁存逻辑的创建。 SV 标准也是如此,主要针对仿真,让芯片 OEM 向客户建议哪种 SV 构造将产生实际硬件,正如 Altera 所做的那样here ?
Altera 生产 CPLD 和 FPGA,其中一些并不太贵(因此我有动力学习 SV)。被 Altera 认可为可综合的 SV 结构子集将在 Quartus 中编译成适合下载到芯片的形式。 Altera 将其他构造,例如许多断言(上述引用的第 16 节)标记为“支持。综合忽略”。以并发断言为例。
因此,根据此处获得的新信息,我的结论是,例如,我可能仅对测试平台模块使用并发断言,但即时断言可用于任何地方。
基本上,我试图了解 SV 的工作原理,以及我如何最好地解释上面引用的 SV 标准。谢谢。
最佳答案
Verilog 语言非常低级,因此在为 FPGA 或 ASIC 设计硬件时,我们有组合逻辑和时序逻辑。任何工具中的断言实际上都是为了验证,这个概念是高水平的,以便能够获得您想要的硬件。
SystemVerilog 不仅用于仿真,而且使用正确的设计子集将允许 RTL 和后合成门文件在仿真中匹配。您编写 SystemVerilog 设计的方式将决定综合工具生成的内容。触发器和锁存器只有在你暗示它们的情况下才会被创建。不同的工具可能会以不同的方式优化组合部分,但如果使用最佳实践编写,那么它们在功能上应该是等效的。
Verilog in a day给出设计指南。 SystemVerilog LRM 不会在可合成组件和验证之间拆分规范,而是 unofficial guide to synthesising SystemVerilog是一个很好的指南。
关于使用不同的 always
block 的问题部分。
从 Verilog 我们有:
always @* // For combinatorial logic
always @(posedge clk) // For flip-flops (sequential) Logic
暗示闩锁涉及不完整的 if/else 分支,很难判断这是意外还是有意为之。
//Latch from bug or actually intended?
always @* begin
if (enable) begin
//..
end
end
System verilog 保留了简单的 always
以向后兼容 verilog 代码,但添加了三种类型,以便设计人员可以明确设计意图。
always_comb //For Combinatorial logic
always_latch //For implying latches
always_ff //For implying flip-flops (sequential logic)
always_comb
具有比 always @*
更严格的规则,用于在模拟中触发以进一步减少 RTL 到门级模拟不匹配。
关于simulation - System Verilog 仿真与执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28227164/
如何从 tvOS 模拟器卸载应用程序? 我已经尝试长按图标,但没有出现“关闭按钮”。 我知道,这是一个 Beta 版本,也许将来他们会实现类似 iOS 的功能。 谢谢你。 最佳答案 方法一 从主屏幕:
我在IOS 8的Xcode-6 Beta中找不到新模拟器数据的目录 它不在 〜/图书馆/应用程序支持/ iPhone模拟器/ Where does the iPhone Simulator store
苹果的Whats new in Xcode 9声明我们可以录制模拟器视频。如何做到这一点? 最佳答案 使用命令行截取屏幕截图或录制视频: 在模拟器中启动您的应用。 打开终端。 要截取屏幕截图,请使用屏
我想构建一个通过 wifi 网络与其他设备通信的应用程序。因为我没有两台真正的 iOS 设备,所以我想在虚拟网络中连接两个 iOS 模拟器。起初我不知道如何/是否可以同时运行两个模拟器,其次我不知道如
我正在尝试模拟鼠标在窗口上的点击。我目前成功地执行了如下操作(我使用的是 Python,但它应该适用于一般的 win32): win32api.SetCursorPos((x,y)) win32api
我想在 ios6 和 ios7 模拟器上运行我的应用程序。我正在尝试安装 ios 6 模拟器,但收到此错误: Failed to install "iOS 6.1 Simulator" An unkn
尽管在实际设备上一切正常,但我想知道为什么从不回调代理 在 iOS 13 beta 5 上的模拟器上? 我在互联网上搜索了答案,但一无所获。 我为协议(protocol)实现了 3 个功能,如下所示:
在我的代码中,我犯了一些错误,将 NSNumber 分配给 NSString: self.totalLikesLabel.text=[user objectForKey:@"totalLikes"];
我使用的是 Xcode 6.1 和 iOS Simulator 8.1。运行我使用 iOS 模拟器编写的简单应用程序需要很长时间。构建过程没问题,但 iOS 模拟器将在应用程序启动前 5 分钟显示黑色
这个问题在这里已经有了答案: Is there a way to simulate multiple iphones using xcode/iphone sim? (10 个回答) 7年前关闭。 我
我旧安装的 Xcode 完全可以正常工作,但我尝试升级 Xcode 以使用 iOS 6,所以我在 Mac App Store 中下载了新版本,但我的 iOS 模拟器现在停止工作了,他告诉我他不能找到S
使用新的 Xcode 6,有时当我在模拟器之间切换时 - 我收到错误消息“模拟器正在使用 - 模拟器无法启动,因为它已经在使用中”。但是,模拟器未在使用中 - 我也没有在事件监视器中看到它。克服这个问
Iam running the latest OSX/Flutter/XCode Versions using flutter, android studio and firebase and
我已将 xcode 更新到 12.3,我收到了新错误。 找不到目标“arm64-apple-ios-simulator”的模块“Alamofire”;找到:x86_64-apple-ios-simul
xcode 9模拟器报错unable to boot the simulator launchd failed to respond mac os sierra 我试过从派生数据中删除内容、重新启动
更新到 Xcode 12 后,项目在模拟器上构建时给了我这个错误: Could not find module 'FrameworkName' for target 'arm64-apple-ios-
我正在尝试在 Windows PC 中使用 IOS Simulator/Emulator 或 iOS SDK 进行移动应用程序测试。是否可以在 Windows PC 中安装 IOS Simulator
我有一个关于如何在 Simpy 中调试的一般性问题。普通的调试工具似乎不起作用,因为一切都在事件循环中运行,您无法逐行检查代码并检查任何时间点存在的内容。 主要是,我感兴趣的是查找在特定时间存在哪些类
在我的模型中,我使用了一个使用自由导航的运输车。如果它是正确的,那么运输车就不能穿墙,奇怪的是在我的模型中,运输车在某一时刻以某种方式能够穿墙? 当我检查模拟时,他在红色圆圈部分的某处滑过墙。 (看截
我是编程新手,我想编写一个程序(仅供自用),每次运行时都会重复一组预设的键盘操作,谁能给我一些建议?是否有任何应用程序可以做到这一点? 最佳答案 有各种各样的程序可以满足您的需求。如果您使用的是 Wi
我是一名优秀的程序员,十分优秀!