我们的目标是┏(゜ω゜)=☞芯片前端全栈工程师~喵!前言之前在写代码的时候呢,就一直被要求尽量使用不带复位的寄存器,理由是节约面积和降低功耗。因此我一直有两个疑问:能省多少面积?能降低多少功耗?鉴于我一直没能掌握功耗测试的技能,因此这次先来看看面积的影响,等我学会使用测试功耗的工具我再测测功耗(其实我想先学formal,然后做一个快速formal比对的脚本,有没有合适的教程推荐呢各位大佬)。环境使用的是之前的极简版DC环境:【芯片前端】一键上手——基于DC的简易verilogHDLRTL综合环境_尼德兰的喵的博客-CSDN博客_dcverilog转rtl环境的路径如下,gitclone下载后
我们的目标是┏(゜ω゜)=☞芯片前端全栈工程师~喵!前言之前在写代码的时候呢,就一直被要求尽量使用不带复位的寄存器,理由是节约面积和降低功耗。因此我一直有两个疑问:能省多少面积?能降低多少功耗?鉴于我一直没能掌握功耗测试的技能,因此这次先来看看面积的影响,等我学会使用测试功耗的工具我再测测功耗(其实我想先学formal,然后做一个快速formal比对的脚本,有没有合适的教程推荐呢各位大佬)。环境使用的是之前的极简版DC环境:【芯片前端】一键上手——基于DC的简易verilogHDLRTL综合环境_尼德兰的喵的博客-CSDN博客_dcverilog转rtl环境的路径如下,gitclone下载后
VScode配置verilog环境在win11的系统里,ise软件不能运行,而在虚拟机中ise的配置也很费劲,今天在这里教大家在VScode中玩转Verilog。实现代码补全、代码高亮、错误检查实现生成Testbench实现波形仿真所需配置文件iverilog(自带gtkwave)、ctags.exe所需配置文件官方下载网址(速度较慢)iverilog:IcarusVerilogforWindows(bleyer.org)ctags:发布·通用-雄鹿/雄鹿-win32·GitHub特别注意:在安装iverilog时对于安装中的所有选项都勾选,避免出现其它问题。环境变量配置将iverilog文件
VScode配置verilog环境在win11的系统里,ise软件不能运行,而在虚拟机中ise的配置也很费劲,今天在这里教大家在VScode中玩转Verilog。实现代码补全、代码高亮、错误检查实现生成Testbench实现波形仿真所需配置文件iverilog(自带gtkwave)、ctags.exe所需配置文件官方下载网址(速度较慢)iverilog:IcarusVerilogforWindows(bleyer.org)ctags:发布·通用-雄鹿/雄鹿-win32·GitHub特别注意:在安装iverilog时对于安装中的所有选项都勾选,避免出现其它问题。环境变量配置将iverilog文件
偶数分频器的Verilog实现核心思想对于占空比为50%、分频系数为N的偶数分频,其核心思想是使用计数范围为[0,(N/2)-1]的计数器,每当计数器计到最大值时输出时钟翻转一次,其余时间保持不变。Verilog实现moduleclk_div_even#( parameterDIV_NUM=8 ) //这里设置了可调整的分频系数( input clk_in , input rst_n , outputreg clk_out);parameterCNT_BITS =$clog2(DIV_NUM)-1 ; //求分频系数相应计数器的位数,$clog2(N)是系统函数,表示对N求2的对数para
偶数分频器的Verilog实现核心思想对于占空比为50%、分频系数为N的偶数分频,其核心思想是使用计数范围为[0,(N/2)-1]的计数器,每当计数器计到最大值时输出时钟翻转一次,其余时间保持不变。Verilog实现moduleclk_div_even#( parameterDIV_NUM=8 ) //这里设置了可调整的分频系数( input clk_in , input rst_n , outputreg clk_out);parameterCNT_BITS =$clog2(DIV_NUM)-1 ; //求分频系数相应计数器的位数,$clog2(N)是系统函数,表示对N求2的对数para
1.乒乓操作的原理 乒乓操作用于数据流控制的处理技巧。 在两个功能块(functionblock)对接时,由于瞬时数据率的差异(如blockA的写数据频率为200Mhz,而blockB的读数据频率为50Mhz),或数据顺序的差异(如blockA发送的数据为顺序发送,blockB接收数据的顺序为逆序接收,即从最后一个字节开始接收)等原因,导致这两个模块不能同时工作。为了提高电路的数据处理效能,可以用ping-pongbuffer结构连接这两个模块,让它们能够同时工作,本质上也是用面积换速度的思想。2.处理流程 如下图,假设blockA和blockB以相同的时钟频率分别对SPRA
1.乒乓操作的原理 乒乓操作用于数据流控制的处理技巧。 在两个功能块(functionblock)对接时,由于瞬时数据率的差异(如blockA的写数据频率为200Mhz,而blockB的读数据频率为50Mhz),或数据顺序的差异(如blockA发送的数据为顺序发送,blockB接收数据的顺序为逆序接收,即从最后一个字节开始接收)等原因,导致这两个模块不能同时工作。为了提高电路的数据处理效能,可以用ping-pongbuffer结构连接这两个模块,让它们能够同时工作,本质上也是用面积换速度的思想。2.处理流程 如下图,假设blockA和blockB以相同的时钟频率分别对SPRA
Modelsim仿真教程1.打开安装好的Modelsim,初次使用时界面如下所示:2.由于是第一次使用,需要新建library弹出的对话框一般保持默认,选择ok3.选中新建的work,然后新建工程弹出的对话框中填入工程名和选择保存路径,然后选择OK4.如果有仿真文件,在弹出的对话框选择存在的文件,否则选择新建文件,这里以新建文件为例进行演示文件名与工程名一不一样都可以,语言类型一般选择Verilog5.仿真文件添加完后,添加源文件,源文件如果已经有了,选择添加已存在文件直接添加,否则创建新文件6.源文件和仿真文件添加完成后,选择Compile进行全编译或者只编译选中的文件,一般情况是进行全编译
Modelsim仿真教程1.打开安装好的Modelsim,初次使用时界面如下所示:2.由于是第一次使用,需要新建library弹出的对话框一般保持默认,选择ok3.选中新建的work,然后新建工程弹出的对话框中填入工程名和选择保存路径,然后选择OK4.如果有仿真文件,在弹出的对话框选择存在的文件,否则选择新建文件,这里以新建文件为例进行演示文件名与工程名一不一样都可以,语言类型一般选择Verilog5.仿真文件添加完后,添加源文件,源文件如果已经有了,选择添加已存在文件直接添加,否则创建新文件6.源文件和仿真文件添加完成后,选择Compile进行全编译或者只编译选中的文件,一般情况是进行全编译