# TLM2.0的建模时间精度 TLM2.0支持两种不同的建模时间精度 粗略时间精度 适用于操作系统启动时间级别的评估以及多核架构评估 处理器运算可以超前于仿真时间 每次传输事务支持2个时间点:起始和结束 支持直接存储器接口(DMI) 精确时间精度 时钟周期级别的精度 适用于架构级别的评估 处理器运算与仿真时间完全同步 每次传输事务支持4个时间点:开始请求、结束请求、开始响应、结束响应 TLM2.0的接口类型 阻塞传输接口: void b_transport(TRANS& trans, sc_time& delay); 包括时间标记 通常用于粗略时间精度 仅提供正向传输 非阻塞传输接口: nb_transport_fw(TRANS&, PHASE&, sc_time&); nb_transport_bw(TRANS&, PHASE&, sc_time&); 包括时间标记和传输阶段 通常用于精确时间精度 包括正向和反向传输 直接存储器访问接口: get_direct_mem_ptr(TRANS& trans, tlm_dmi& dmi_data); invalidate_direct_mem_ptr(sc_dt::uint64 start_range, sc_dt:uint64 end_range); 调试传输接口 transport_dbg(TRANS& trans); 00
SpinalHDL与Verilog的比较
近似语法比较 语法 SpinalHDL Verilog 阻塞赋值 a := U"h3" a <= 4'h3; 非阻塞赋值 a \= U"b11" `a = 4’b11; 连线 a <> b .a(b) 线 val a = UInt(4 bits) wire[3:0] a; 寄存器 val a = Reg(UInt(4 bits)) reg[3:0] a; 复位 always@(posedge clk or negedge rstn) if(!rstn) a <= 4'h0; val a = Reg(Uint(4 bits)) init(0) […]
(中文) 小葵的傻瓜学习笔记:趣学JavaScript—教孩子学编程
第一部分 基础知识 第6章 条件与循环 条件有if和else if; if是只判断( )里的条件是否为真,else if是既判断之间if是否为假,再判断( )里的条件是否为真 if的写法:if(condition // 为真) { //do something } if…else的写法:if (condition // 为真) { // do something } else { // do something else } 程序举例25 // Make an order var lemonChicken = false var beefWithBlackBean = false var sweetAndSourPork = true […]
(中文) 小葵的傻瓜学习笔记:趣学JavaScript—教孩子学编程
第一部分 基础知识 第4章 对象 数组跟对象的区别:a). 位置索引;b). 对象中可包含JS内置函数 创建对象的基本语法:var cat = { leg: 4, name: “Harmony”, […]
(中文) 小葵的傻瓜学习笔记:趣学JavaScript—教孩子学编程
第一部分 基础知识 第3章 数组 当需要创建很多变量时,可以创建一个数组将所有变量都记录在一起 创建数组的写法:var newGroup [ ] 只使用[ ] 时,数组为空 在创建数组时,可以直接将元素放到数组中 程序举例11 //Create a group of animals var animals = [ “monkey”, “tiger”, “lion”, “giraffe”, “elephant”] 数组中每个元素的位置关系跟字符串字符的位置关系相似 当需要访问数组中元素时,可使用方括号和元素位置索引,如animal [0] 即monkey 创建数组元素时,可以在数组任意位置索引处创建 访问元素时,可以给已赋值的位置索引重新赋值 数组内也包括数组 数组内数组的元素位置索引可以用两个方括号表示 程序举例12 //Show the right location of the elements var animals = [ [ “monkey”, […]
(中文) 小葵的傻瓜学习笔记:趣学JavaScript—教孩子学编程
第一部分 基础知识 第2章 类型与变量 JavaScript中有3种基本的数据类型:数字,字符串和布尔值(是非) JavaScript可以执行加减乘除的基本数学运算,操作符是+,-,*和/ 这些运算的顺序与一般数学运算的顺序一样 JavaScript允许使用变量给值起个名字,要给变量赋值需要使用1个等号(=) 变量之间可以进行运算 变量的命名方法通常使用骆驼写法,即除了第一个单词外,其他单词的首字母大写 程序举例02 // Calculate the seconds in an hour var secondsInAMinute = 60; var minutesInAnHour = 60; var secondsInAnHour = secondsInAMinute * minutesInAnHour; 返回值:3600 使用字符串需要使用双引号(“ ”) 连接字条串需要使用加号(+) 程序举例03 // Join your name with a greeting var greeting = “Hello”; var myName […]
(中文) 小葵的傻瓜学习笔记:趣学JavaScript—教孩子学编程
第一部分 基础知识 第1章 认识JavaScript JavaScript语言用来编写在Web页面中运行的程序。 这里的Web页面不直接等于网页页面,而是指浏览器本身; Javascript可以控制一个Web页面的外观。 这里的Web页面外观是指浏览器可读页面的外观,并非浏览器本身; 每一个Web浏览器都带有一个JavaScript解释器…… 在这里JavaScript解释器主要用在网页80服务部分,其他服务没有JavaScript解释器; 程序举例01 // Draw as many cats as you want function drawCats (howManyTimes) { for ( i = 0; i < howManyTimes; i += 1) { console. log ( i + “ =^.^=“ ) } } drawCats (10) 程序解释01 function 的写法:function […]
(中文) 乘法器入门
最近整理了一下乘法器的设计方法,在此分享一下。 +10
Sugar Fight – JavaScript Project
This project was aspired by an answer posted on zhihu.com:Why is the rich richer and the poor poorer? – Answer of 崔绍瑄 +20
KWSequence – Javascript Project
本工具的用意是方便数字IC设计工程师绘制自己的电路时序图。 I. 项目目标 提供一个在线生成数字电路仿真波形图的工具,通过输入ASCII字符即可得到对应的波形图,方便大家进行在线交流。本项目一共分为3个阶段。第一阶段的目标是实现一个完全兼容AndyTiming工具ASCII字符命令的在线工具,说白了就是把AndyTiming移植到网页上。第二阶段是扩展阶段,主要是增加部分AndyTiming缺乏支持的功能,例如增强版的Mark标签,不定态的表示,状态转移符号的绘制等等。第三阶段是服务扩展阶段,主要是增加网页的服务功能,例如生成网页嵌入图片的脚本,一键提交图片到公共图库并复制链接等功能。希望大家对本项目的发展多多提出宝贵意见。 II. 项目日志 Day 28.Aug.2016 挖了一个大坑,看什么时候有空填上吧。 Day 11.Nov.2017 哇塞,时隔1年多我终于昨天花了一整天把这个代码完成了,撒花。目前已经完成的是第一阶段,实现了完全兼容AndyTiming的ASCII命令,额外优化增加了Mark标签的功能。 Day 12.Nov.2017 昨天发现在手机上用Safari打开Canvas时是无法长按保存图片的,因此增加了保存图片按钮,同时生成图片的HTML代码,这样大家只需要把这个代码复制到自己的文章里就可以引用图片了。 目前已经支持的符号包括: – 高阻态 ~ 高电平 _ 低电平 / 上升沿 \ 下降沿 [ 数据起始 ] 数据结束 \< 数据起始沿 > 数据结束沿 * 数据变化 : 不定态 | 时间轴标签: 格式为 标签名称@标签所在信号行编号 在正确的位置标注’|’号。 + 时间轴: 格式为 时间单位#时间轴精度 在正确的位置标注‘+’号。 III. 离线使用KWSequence 本工具将在此页面长期不间断更新,但是如果你需要离线使用本工具,可以点击下载KWSequence.html和KWSequence.js到同一个目录下用浏览器打开KWSequence.html即可。 +15-1