当前位置: 首页 > wzjs >正文

公司网站邮箱费用典型十大优秀网络营销案例

公司网站邮箱费用,典型十大优秀网络营销案例,wordpress 当数据库,国外做调灵风暴的网站一个完整的 cocotb 验证 阶乘计算模块(factorial) 的例子,涵盖: Verilog RTL 设计(组合/时序可选)cocotb Python 验证平台(含随机激励、断言、日志)仿真运行说明(使用 i…

一个完整的 cocotb 验证 阶乘计算模块(factorial) 的例子,涵盖:

  1. Verilog RTL 设计(组合/时序可选)
  2. cocotb Python 验证平台(含随机激励、断言、日志)
  3. 仿真运行说明(使用 iverilog + gtkwave

1. Verilog RTL:阶乘计算器(同步启动、串行计算)

// factorial.v
module factorial (input         clk,input         rst_n,input         start,input  [3:0]  n,         // 最大支持 15!(4位)output reg    done,output reg [31:0] result
);reg [3:0] i;reg [31:0] acc;reg busy;always @(posedge clk or negedge rst_n) beginif (!rst_n) beginacc    <= 1;i      <= 0;busy   <= 0;done   <= 0;result <= 0;end else beginif (start && !busy) beginacc  <= 1;i    <= n;busy <= 1;done <= 0;end else if (busy) beginif (i > 1) beginacc <= acc * i;i   <= i - 1;end else beginresult <= acc;busy   <= 0;done   <= 1;endend else begindone <= 0;endendend
endmodule

2. cocotb 测试代码:测试随机 0~12 的阶乘

# test_factorial.py
import cocotb
from cocotb.triggers import RisingEdge, Timer
from cocotb.clock import Clock
import random
import math@cocotb.test()
async def test_factorial(dut):"""随机测试多组阶乘计算"""# 创建时钟 10ns 周期cocotb.start_soon(Clock(dut.clk, 10, units="ns").start())# 初始化dut.rst_n.value = 0dut.start.value = 0dut.n.value = 0await RisingEdge(dut.clk)dut.rst_n.value = 1await RisingEdge(dut.clk)for trial in range(10):x = random.randint(0, 12)expected = math.factorial(x)# 启动计算dut.n.value = xdut.start.value = 1await RisingEdge(dut.clk)dut.start.value = 0# 等待 donefor _ in range(50):await RisingEdge(dut.clk)if dut.done.value:breakelse:assert False, f"Timeout: DUT failed to complete for n={x}"got = dut.result.value.integerassert got == expected, f"Failed: {x}! = {got}, expected {expected}"dut._log.info(f"PASS: {x}! = {got}")

3. 仿真运行说明(以 Icarus Verilog + cocotb 为例)

文件结构

project/
├── factorial.v
├── test_factorial.py
├── Makefile

Makefile 示例(适配 Icarus)

TOPLEVEL_LANG = verilog
VERILOG_SOURCES = $(PWD)/factorial.v
TOPLEVEL = factorial
MODULE = test_factorialSIM = icarusinclude $(shell cocotb-config --makefiles)/Makefile.sim

4. 运行与结果

make

输出类似:

[INFO] cocotb.regression                         Test Passed: test_factorial
PASS: 5! = 120
PASS: 0! = 1
PASS: 7! = 5040
...

5. 优点总结(相比纯 Verilog TB)

项目cocotb 测试优势
语言友好使用 Python 写用例、随机测试、断言都非常简单
数学函数丰富可直接调用 math.factorial 做黄金模型
日志与报错assert + dut._log.info 提供直观日志
脚本化测试易于与 GitLab CI / pytest 等整合

如需扩展:

  • 加入 边界值测试(如 n = 12、15)
  • 测试 非法输入行为(如 n > 15)
  • 加入 波形支持vcd 输出可通过 $dumpfile 查看
http://www.dtcms.com/wzjs/448963.html

相关文章:

  • 招聘网站建设需求文档合肥seo培训
  • 商城网站大概多少钱免费seo网站推广在线观看
  • 好用的影视网站模板站长工具在线免费
  • 两学一做登录网站网站关键词排名优化软件
  • 赣州建设企业网站seo搜索优化邵阳
  • 设计网站公司 生活湖南岚鸿今日油价92汽油价格表
  • 优秀的政府网站建设白帽seo
  • 广州门户网站开发厦门百度广告
  • php网站开发流程步骤北京seo诊断
  • 营销手段和技巧肇庆seo
  • 外贸网站 建设竞价推广运营
  • 北京房产网站建设seo教程自学
  • 网站设计师大学学什么专业明星百度指数排名
  • 一朋友做色情网站被抓了网上如何推广产品
  • 如何建立自己网站视频网络推广技巧
  • 网站开发 框架 java50篇经典软文100字
  • 旅游网站的建设方案网络推广靠谱吗
  • 互动平台是什么意思网站外部优化的4大重点
  • app开发网站建设火星时代教育培训机构官网
  • 政府网站建设的成功与失败之处网络推广是什么职位
  • 网站建设 网赚源码程序|任务网程序|开心兼职广告任务网源码做网站的费用
  • 哪里有做网站平台搜索引擎大全排行
  • 兰州市政府门户网站作风建设年活动作风评议排名推广网站
  • 制作一个企业web网站太仓网站制作
  • 写方案的网站google chrome
  • vR网站建设程序郑州seo招聘
  • 网站设计制作哪里好百度推广登录入口登录
  • 中小企业网站建设服务seo资料网
  • 企业微信crm网站优化排名怎么做
  • 做落地页素材在什么网站上找网站的搜索引擎