杂谈:DC对Verilog和SystemVerilog语言的支持
DC对Verilog和SystemVerilog语言的支持
- 设计语言用哪种?
- Design Compiler对二者的支持
- 简单的fsm电路测试
- 测试结果对比
- 写在最后
设计语言用哪种?
- 直接抛出结论:先有电路,后为描述。
- 设计端而言,没有语言的高低好坏,只有描述的精准与否。本文的实验结果很好的说明了这一点。
Design Compiler对二者的支持
- 我们在Design Compiler中读入命令有这样的选项,支持包括v和sv在内的三种主流硬件描述语言。

简单的fsm电路测试
- 分别给出一个简单的FSM电路的V代码和SV代码。并基于SAED32nm学习用工艺库来做DCT的实现。
代码如下
module fsm(clk,rst_n,x,y
);
input clk;
input rst_n;
input x;
output y;parameter A = 3'd0,B = 3'd1,C = 3'd2,D = 3'd3,E = 3'd4;reg [2:0] cur_state,nxt_state;always @ (posedge clk or negedge rst_n) beginif (!rst_n) begincur_state <= A;endelse begincur_state <= nxt_state;end
endalways @(*) beginif (!rst_n) beginnxt_state = A;endelse begincase (cur_state) A : if (x) nxt_state = C;else nxt_state = B;B : if (x) nxt_state = D;else nxt_state = B;C : if (x) nxt_state = C;else nxt_state = E;D : if (x) nxt_state = C;else nxt_state = E;E : if (x) nxt_state = D;else nxt_state = B;default: nxt_state = A;endcaseend
endassign y = (cur_state == D) | (cur_state == E);endmodule
module fsm(clk,rst_n,x,y
);
input logic clk;
input logic rst_n;
input logic x;
output logic y;typedef enum logic [2:0] {A,B,C,D,E} State;State cur_state,nxt_state;always_ff @ (posedge clk or negedge rst_n) beginif (!rst_n) begincur_state <= A;endelse begincur_state <= nxt_state;end
endalways_comb beginif (!rst_n) beginnxt_state = A;endelse begincase (cur_state) A : if (x) nxt_state = C;else nxt_state = B;B : if (x) nxt_state = D;else nxt_state = B;C : if (x) nxt_state = C;else nxt_state = E;D : if (x) nxt_state = C;else nxt_state = E;E : if (x) nxt_state = D;else nxt_state = B;default: nxt_state = A;endcaseend
endassign y = (cur_state == D) | (cur_state == E);endmodule
测试结果对比
- 我们对二者进行相同的综合环境设置并读入设计


- 分析结果如下:
sv电路图结果如图所示:

v电路图描述结果如下图所示:

写在最后
- 从上一节的结果来看,综合工具DC对两种语言的支持都是比较完美的,因此还是回归那句话,先有电路,后为描述。
相关文章:
杂谈:DC对Verilog和SystemVerilog语言的支持
DC对Verilog和SystemVerilog语言的支持 设计语言用哪种?Design Compiler对二者的支持简单的fsm电路测试测试结果对比写在最后 设计语言用哪种? 直接抛出结论:先有电路,后为描述。设计端而言,没有语言的高低好坏&#…...
网络安全评估(网络安全评估)
讨论了基于互联网的网络安全评估和渗透测试的基本原理,网络安全服务人员,安全运营人员,通过评估来识别网络中潜在的风险,并对其进行分类分级。 黑客通常采取的攻击方式如下: 突破目标外围系统,比如主站拿…...
offsetof宏计算某变量相对于首地址的偏移量
宏:offsetof的使用 //offsetof (type,member) //type是结构体的类型名,member是结构体中的成员名。struct Student {char name[5]; // 姓名int age; // 年龄float score; // 成绩 };int main() {struct Student s;printf("%zd\n", off…...
算法|每日一题|统计无向图中无法互相到达点对数|并查集
2316. 统计无向图中无法互相到达点对数 原题地址: 力扣每日一题:统计无向图中无法互相到达点对数 给你一个整数 n ,表示一张 无向图 中有 n 个节点,编号为 0 到 n - 1 。同时给你一个二维整数数组 edges ,其中 edges[i…...
浏览器的四种缓存协议
❤️浏览器缓存 在HTTP里所谓的缓存本质上只是浏览器和业务侧根据不同的报文字段做出不同的缓存动作而已 四种缓存协议如下 Cache-ControlExpiresETag/If-None-MatchLast-Modified/If-Modified-Since 🎡Cache-Control 通过响应头设置Cache-Control和max-age&…...
力扣每日一题55:跳跃游戏
题目描述: 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 …...
mssql调用外部接口
前言: 断更很久了。 是因为这段时间发现,AI出来之后,很多博客都没有记录的必要了,你问他他都能即时告诉你。 这篇博客产出的原因是,看到一份奇葩需求,说数据库改某行数据的状态字段,也要调用接…...
npx是什么命令?npx和npm有什么区别?
平时安装node模块的时候,经常使用的命令是npm。其实还有另外一个命令,叫做npx。网上的说法都是:npx是npm命令的升级版本,功能非常强大。 npx 是什么 npx是一个由Node.js官方提供的用于快速执行npm包中的可执行文件的工具。它可以…...
1997-2017年各省能源投入数据(万吨标准煤)
1997-2017年各省能源投入数据(万吨标准煤) 1、时间:1997-2017年 2、来源:中国统计年鉴 3、范围:30个省 4、指标:能源投入(各省8种能源消费总量计算得出)(万吨标准煤&…...
C++ Primer笔记001:标准输入输出/基本数据/流程控制语句
文章目录 1.标准输入cin:2.标准输入cout:3.endl:4.命名空间(namespace):5.有符号类型和无符号类型6.字面值常量7.变量的初始化和赋值8.变量的作用域9 求余运算符的符号10.关于sizeof11.switch case语句漏写break 1.标准…...
【C++进阶之路】IO流
文章目录 一、C语言的IO1.键盘与显示屏2. 文件与内存3.字符串与内存 二、CIO1.iostream1.1基本使用1.2operator bool 2. fstream2.1二进制的文件读写2.2字符串的文件读写 3. sstream3.1序列化与反序列化3.2拼接字符串3.3将数据类型转换为字符串 总结 一、C语言的IO 1.键盘与显…...
$GNGGA,传感器传输的数据解析
每一秒传输这一帧数据如下: $GNGGA,090022.000,3959.82136,N,11628.16507,E,1,06,3.5,21.4,M,0.0,M,,*4D $GNGLL,3959.82136,N,11628.16507,E,090022.000,A,A*4F $GPGSA,A,3,03,16,26,,,,,,,,,,4.1,3.5,2.1*32 $BDGSA,A,3,07,21,42,,,,,,,,,,4.1,3.5,2.1*21 $GPGSV…...
javaEE - 2(11000字详解多线程)
一:多线程带来的的风险-线程安全 线程安全的概念:如果多线程环境下代码运行的结果是符合我们预期的,即在单线程环境应该的结果,则说这个程序是线程安全的。 当多个线程同时访问共享资源时,就会产生线程安全的风险&am…...
easyphoto 妙鸭相机
AIGC专栏7——EasyPhoto 人像训练与生成原理详解-CSDN博客如何训练一个高品质的人像Lora与应用高品质Lora的链路对于写真生成而言非常重要。由《LoRA: Low-Rank Adaptation of Large Language Models》 提出的一种基于低秩矩阵的对大参数模型进行少量参数微调训练的方法&#x…...
【Qt控件之QMdiArea】介绍及使用
描述 QMdiArea小部件提供了一个区域,用于显示MDI窗口。QMdiArea的功能类似于MDI窗口的窗口管理器。例如,它在自身上绘制和排列管理的窗口,可以按级联或平铺模式排列它们。通常,QMdiArea被用作QMainWindow的中心小部件,…...
Linux网络编程-极简HTTPUDP服务器
HTTP服务器 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h>#define PORT 8080 #define BUFFER_SIZE 2048void handle_client(int client_socket) {char buffer[BUFFER_SIZE];recv(cl…...
虚拟化、容器与Docker基本介绍以及安装部署(Docker 基本管理)
目录 1 Docker 概述 1.1 Docker与虚拟机的区别 1.2 容器在内核中支持2种重要技术 1.3 Docker核心概念 2 安装 Docker 2 Docker 镜像操作 2.1 搜索镜像 2.2 获取镜像 2.3 镜像加速下载 2.4 查看镜像信息 2.4.1 查看下载的镜像文件信息 2.4.2 查看下载到本地的所有镜像…...
Spring Boot中捕获异常错误信息并将其保存到数据库中
Spring Boot中捕获异常错误信息并将其保存到数据库中: 1.创建数据库表: 首先,您需要创建一个用于存储异常信息的数据库表。可以使用SQL脚本或者使用Hibernate实体类来创建表。以下是一个用于存储异常信息的表的示例SQL: CREATE TABLE erro…...
CNN记录】pytorch中flatten函数
pytorch原型 torch.flatten(input, start_dim0, end_dim- 1) 作用:将连续的维度范围展平维张量,一般写再某个nn后用于对输出处理, 参数: start_dim:开始的维度 end_dim:终止的维度,-1为最后…...
科普长文--网络安全拟态防御技术概念及应用
网络安全拟态防御技术概念 什么是网络安全拟态防御? 网络安全拟态防御技术是一种基于生物拟态原理,利用动态异构冗余构造、拟态伪装机制、测不准效应等手段,实现网络空间的主动防御和内生安全的技术。它是由中国工程院院士邬江兴首创的,旨在应对网络空间中的各种未知威胁…...
从手机干扰到车辆‘趴窝’:聊聊新能源汽车里那些看不见的‘电磁战争’
新能源汽车的隐形战场:电磁兼容如何影响你的每一次出行 1. 从手机干扰到车辆故障:电磁兼容的日常启示 你是否遇到过这样的场景——当手机靠近音响时,扬声器会发出"滋滋"的杂音?这个看似简单的现象,其实揭示了…...
rust 1.95.0 最新版发布:语言特性、编译器、平台支持、标准库、Rustdoc 与兼容性变更全解析
rust 1.95.0 最新版发布:语言特性、编译器、平台支持、标准库、Rustdoc 与兼容性变更全解析 2026年4月16日,Rust 1.95.0 正式发布。作为一次重要版本更新,这一版在语言层、编译器、平台支持、标准库、Rustdoc 以及兼容性方面都带来了相当丰富…...
3步解锁百度网盘SVIP下载加速:Mac用户必看的终极提速指南
3步解锁百度网盘SVIP下载加速:Mac用户必看的终极提速指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘缓慢的下载速度而烦…...
5秒极速转换:让B站缓存视频重获新生的开源神器
5秒极速转换:让B站缓存视频重获新生的开源神器 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经为那些"消失"的B…...
保姆级教程:在Jetson AGX Orin上配置XDMA驱动,实现与Zynq 7030的PCIe高速通信
从零搭建Jetson AGX Orin与Zynq 7030的PCIe高速数据通道:XDMA驱动全流程实战 当嵌入式系统需要处理高速数据流时,PCIe总线往往是连接处理器与FPGA的首选方案。Jetson AGX Orin作为边缘计算领域的性能怪兽,搭配Zynq 7030的可编程逻辑单元&…...
快速上手:使用ComfyUI可视化工作流调用BERT文本分割模型
快速上手:使用ComfyUI可视化工作流调用BERT文本分割模型 你是不是对文本处理模型感兴趣,但又觉得写代码太麻烦?或者你想快速实验一下BERT模型,看看它能把一段文字切成什么样?今天,我们就来聊聊一个特别适合…...
利用StructBERT自动生成测试用例:基于需求文档的语义匹配
利用StructBERT自动生成测试用例:基于需求文档的语义匹配 1. 引言 你有没有过这样的经历?面对一份几十页的新需求文档,测试工程师需要从头开始,一个字一个字地构思测试用例。这个过程不仅耗时耗力,还特别容易遗漏一些…...
ORA-29934索引关联错误修复指南
修复步骤:1. 检查indextype参数,确保extproc运行正常。2. 重建索引:ALTER INDEX index_name REBUILD PARAMETERS(indextype is ctxsys.context); 3. 远程处理:使用expdp/impdp导出重建,参数加transformoid:n:sys_c0012…...
HTML图片怎么用Bitbucket Pipelines发布_Bitbucket自动构建HTML站点
Bitbucket Pipelines 不能直接托管 HTML 站点,仅支持构建后推送到 GitHub Pages、Netlify 或自有服务器;需配置 SSH 密钥权限,用 git push 到 gh-pages 分支或 rsync 部署,并注意资源路径与 base URL 适配。Bitbucket Pipelines 能…...
别再用HAL_Delay()了!STM32 HAL库延时函数的3个致命坑与替代方案
别再用HAL_Delay()了!STM32 HAL库延时函数的3个致命坑与替代方案 在STM32开发中,HAL_Delay()可能是最常被调用的函数之一。这个看似简单的毫秒级延时函数,却隐藏着不少开发陷阱。许多工程师在项目后期才会突然发现:为什么我的系统…...
