avatar
文章
130
标签
74
分类
11
首页
时间轴
标签
潘业成的博客
首页
时间轴
标签

潘业成的博客

【IC设计】ZC706板卡点灯入门(含Verilog代码,xdc约束,实验截图)
发表于2023-09-19|数字IC设计
这篇博客将针对AMD Zynq 7000 SoC ZC706 Evaluation Kit板卡(对应Vivado创建工程时FPGA型号:XC7Z045ffg900-2)实现基本的点灯程序。 假定已知的前置知识本文对以下内容不再介绍, 使用Vivado进行综合、实现、生成比特流并烧录FPGA FPGA的概念、Verilog的基础语法 需求:板卡时钟为200MHz,让板子上的一个LED灯保持0.5秒亮,0.5秒灭。 注意点:①板卡使用JTAG接口烧录时,必须将SW4拨为01,如图所示: ②ZC706的时钟都是差分时钟,必须使用Verilog原语将其转换为单端时钟才可以直接使用: IBUFGDS IBUFGDS_inst( .O(single_clock), //Clock buffer Output .I(clk_p), //Diff_p clock buffer input (connect directly to top-level port) .IB(clk_n) //Diff_n clock buffer input(conne...
【环境配置】基于Docker配置Chisel-Bootcamp环境
发表于2023-09-10
Chisel是什么Chisel是Scala语言的一个库,可以由Scala语言通过import引入。Chisel编程可以生成Verilog代码或C++仿真代码,目前国内主要由中科院计算所的包云岗老师团队做香山处理器使用,它不仅是一门语言,也代表一个硬件敏捷开发的方向。 Chisel-Bootcamp是什么Chisel-Bootcamp是Github上的一个Chisel教程,包含了基于Jupytor的Chisel教学,这篇文章讲一下基于Docker来配置Bootcamp环境,主要参考资料是Bootcamp在github上的安装教程 基于Docker配置Chisel-Bootcamp官网下载Docker安装包首先需要下载Docker-Desktop程序,然后打开这个exe程序安装好,我的感受是Docker安装还是比较友好的。点进链接,根据操作系统版本下载我这里安装的是Windows版本的Chisel,安装好后打开Docker-Desktop Docker换源我参考的这篇文章的方法1 启动Bootcamp镜像使用命令安装Chisel-Bootcamp镜像 1docker run -it ...
【IC设计】Chisel开发环境搭建
发表于2023-09-06|数字IC设计
README 如果想快速搭建好环境,不关心具体的安装过程 直接复制文章后面的【脚本附录】,以root用户在任意目录下执行该脚本它会帮助你完成安装java11、ubuntu换源、sbt换源、下载sbt,执行完以后是这样的: 然后从安装步骤的【第9步】开始测试scala和chisel是否能正常使用即可 如果想从头逐步安装,从【安装步骤】第一步开始看即可 安装步骤 首先安装一个Ubuntu的虚拟机 然后给Ubuntu换个镜像,方便下载注意换源后使用apt-get update更新下 安装vim(可以不做)这里安装Vim是我感觉Ubuntu自带的vi编辑器似乎有问题,因为我按i进入【插入模式】并没有提示,所以安装vim进行替代。只关心Chisel安装的可以跳过这一步。 123456789101112apt install vimsudo vim /etc/vim/vimrc#在vimrc文件结尾处添加#显示行数set number#自动缩进set autoindent#光标高亮set cursorlineset ruler#Tab默认4格set tabstop=4 ...
【OFDM系列】DFT为什么能求频率幅度谱?DFT后的X[k]与x(n)幅度的关系?DFT_IDFT底层数学原理?
发表于2023-08-16|通信系统
问题引入上面是DFT和IDFT的公式,IDFT先不谈。在实践中常使用FFT算法来快速算出DFT,获得时域采样信号x(n)的频率幅度谱。例如: 12N=1500;xn=0.5*sin(2*pi*75/N*n)+3*cos(2*pi*40/N*n)+0.7*sin(2*pi*350/N*n); 上面这个时域采样信号xn由三个频率叠加而成,我们知道频率的概念是1秒信号经过了多少个周期,那么我们假设采样率是fs=1000,共采样N=1500点,那么0.5*sin(2*pi*75/N*n)的频率即为75*fs/N=50,因此第一个信号频率为50。 通过Matlab进行FFT,可以画出这样一张频率幅度谱:这里就引申出我们的标题:DFT为什么能求频率幅度谱?DFT后的X[k]与x(n)幅度的关系?DFT/IDFT底层数学原理?对于这个问题,我看了不少网上的博客、视频、书籍,总觉得讲的不清不楚,有人说X[k]的结果就是x(n)的幅度,有人说X[k]的结果除以N就是x(n)的幅度,有人说X[k]的结果除以N/2就是x(n)的幅度,就没有一个比较清楚的证明到底X[k]的值和x(n...
【IC设计】ICC workshop Lab1 数据准备&基本流程 【脚本总结】 (1)
发表于2023-08-04|数字IC设计
Task 1 Create a Milkyway library先进入lab1_data_setup目录,打开icc_shell,创建项目 1create_mw_lib -technology $tech_file -mw_reference_library "$mw_path/sc $mw_path/io $mw_path/ram16x128" -bus_naming_style {[%d]} -open $my_mw_lib 然后ls risc_chip.mw查看是否创建成功 Task 2 Load the Nestlist,TLU+,Constraints and Controls12345678910111213141516171819import_designs $verilog_file -format verilog -top $top_designset_tlu_plus_files -max_tluplus $tlup_max -min_tluplus $tlup_min -tech2itf_map $tlup_map...
【IC设计】ICC workshop Lab1 数据准备&基本流程 【脚本总结】
发表于2023-08-04|数字IC设计
Task 1 Create a Milkyway library先进入lab1_data_setup目录,打开icc_shell,创建项目 1create_mw_lib -technology $tech_file -mw_reference_library "$mw_path/sc $mw_path/io $mw_path/ram16x128" -bus_naming_style {[%d]} -open $my_mw_lib 然后ls risc_chip.mw查看是否创建成功 Task 2 Load the Nestlist,TLU+,Constraints and Controls12345678910111213141516171819import_designs $verilog_file -format verilog -top $top_designset_tlu_plus_files -max_tluplus $tlup_max -min_tluplus $tlup_min -tech2itf_map $tlup_map...
【IC设计】Synopsys的Milkyway数据库、设计库、依赖库
发表于2023-08-04|数字IC设计
Milkyway database for Synopsys Galaxy Design PlatformSynopsys Galaxy Design Platform(Synopsys银河设计平台)包括的系列工具有:DC、ICC、StarRC、IC Validator、PrimeRail、Milkyway Environment Milkyway(银河)数据库是为Synopsys银河设计平台服务的数据库,方便工具直接通过接口对数据库进行读写,而不是以ASCII文件中间文件的形式进行操作。 不同EDA软件和mw库的交互:** DC** write_milkyway或write_verilog或write_ddc 即DC的写出可以用mw格式 ICC从mw中读入physical design info和library cell info 写出也用mw格式mw环境可以将GDSII,IASIS和LEF/DEF转换成为新的lib cell,从而成为mw格式 StarRC从mw库中读入物理设计信息来执行寄生RC参数提取,并写回到数据库中,方便ICC读取和使用时序信息。 mw的基本...
【IC设计】DC工具的target、link、synthetic、symbol库
发表于2023-08-01|数字IC设计
Specifying Libraries You use dc_shell variables to specify the libraries used by Design Compiler.Table 4-1 lists the variables for each library type as well as the typical file extension for the library. 你使用dc_shell变量去指定dc要使用的库。下表列出了每种库以及对应的常用扩展名 Library type Variable Default File extension Target library target_library {“your_library.db”} .db Link library link_library {“*”,”your_library.db”} .db Symbol library symbol_library {“your_library.sdb”} .sdb DesignWare library synthe...
【IC设计】ICC1 workshop lab guide 学习笔记——Lab 2 Design Planning Task5-9
发表于2023-07-08|数字IC设计
ICC1 workshop lab guide2.5 Create P/G Rings Around Macro GroupsIn the task following this one you will use “Power Network Synthesis” (PNS) toautomate the creation of power/ground core and individual macro rings, as well asvertical and horizontal straps. If you want to create rings around groups of macros,that is done prior to PNS, which is what this task will accomplish.在接下来的任务中,你将使用电源网络综合去自动地创建P/G核心和单个宏环,以及垂直和水平绑带。如果你想在宏组周围创建环,则需要在PNS之前完成,这就是这次要完成的任务。 We have created a script...
【IC设计】ICC1 workshop lab guide 学习笔记——Lab1 Data Setup&Basic Flow
发表于2023-06-21|数字IC设计
Lab1 Data Setup&Basic Flow1.1 Create a Milkyway librarylab1_data_setup目录下有.synopsys_dc.setupscriptsrisc_chip.mwdesign_data 其中.synopsys_dc.setup中设置了若干变量,设置了搜索路径、verilog设计、sdc、def、tech_file、tlu、db库等的路径,以方便在后面使用icc时能直接调用。 启动icc_shell后会自动调用.synopsys_dc.setup,可以通过printvar来验证变量是否已设置 了解了.synopsys_dc.setup后,下面就创建设计库(即Milkyway library)写入库的路径、库名、tf文件路径、添加reference libraries,这些都可以使用刚刚加载的变量名来替代。其中reference libraries需要添加ref/mw_lib/的sc、ram16x128、io三个库 这些库是Milkyway参考库: 信息是以被称为“views”的形式存储的,例如...
【IC设计】ICC1 workshop lab guide 学习笔记——Lab 2 Design Planning Task1-4
发表于2023-06-18|数字IC设计
Lab 2 Design Planning2.1 Load the Design 进入lab2_dp目录并打开icc_shell, 打开orca_lib.mw下的orca_setup cell Take a look at the LayoutWindow. 看看跳出的LayoutWindow The large greenish-blue rectangles are the macro and IO pad cells, and the small purple rectangles in the lower left corner (zoom in if you want to see them more clearly), are the standard cells.大的蓝绿色矩形是宏单元格和IO单元格,左下角的紫色小矩形(如果想看得更清楚,可以放大)是标准单元格。 All of these cells are instantiated cells in the netlist.所有这些单元格都是网络列表中的实例化单元格。 They are all stacked o...
【IC设计】数字IC设计读书笔记
发表于2023-06-17|数字IC设计
打算后面将IC设计流程方面的书籍笔记记在这里,近期每天持续更新(除非导师换方向 ) 《专用集成电路设计实用教程》集成电路系统的组成 数字电路模块:RISC_CORE 大部分数字电路使用同一个时钟源,经过时钟产生电路,协同各部分运行。即同步电路。 数字电路大致可以分为数据通路和控制通路。数据通路指进行加减乘除的运算器,控制通路是控制数据流通和信号开关等的逻辑电路。 模拟电路模块:A/D模拟电路相关的有模数转换器ADC,数模转换器DAC,可编程增益放大器PGA,通过数字电路来控制模拟增益锁相环PLL,用于产生高频时钟和进行时钟信号的相位校正 IP核模块:MPEG4、DSP、CONDEC、USBIP核的出现是IC产业分工的结果,使得一些公司写IP,一些公司复用IP,从而IP用的放心,也开发的更快。USB是IP核,也是输入输出设备。 内存模块:RAM内存占据了大部分芯片面积,在低功耗设计中要注意内存功耗在芯片功耗中的比例。 输入输出PAD 这里的PAD就是端口的意思,USB接口就是一种I/O PAD。 由于I/O PAD是直接与外部世界相连接的特...
【IC设计】Synopsys数字IC设计流程
发表于2023-06-11|数字IC设计
数字IC设计流程数字IC设计流程如下:需求->芯片定义specification->算法描述(一般用C++)->RTL级描述(Verilog)->HDL功能仿真->逻辑综合(DC)->门级仿真(仿真网表)->形式化验证>物理设计(floor plan,place,cts,route等)->签核(chip finish,StarRC提取寄生RC,PT时序分析,DRC&LVS等) 前端设计RTL编写和HDL仿真 用Verilog实现芯片各个模块的功能,如写一个四位乘法器multipleir.v和它的测试文件tb_multiplier.v并使用VCS编译并仿真,使用Verdi查看波形,通过RTL功能验证。 逻辑综合使用DC(Design Compiler)综合RTL代码,生成门级网表(Gate-Level Netlist)。 具体来说,DC实际上将RTL先翻译成 了内部可识别的GTECH形式的中间代码,然后再根据所提供的目标库和设计约束来映射和优化出最终的网表文件netlist.v。 在使用Synopsys D...
【IC设计】基于Verilog的8层矩阵乘法设计
发表于2023-06-04|数字IC设计
项目要求基本要求输入有9个矩阵,权重矩阵有8个,分别是Weight I0I7,Input矩阵I ~-1。8个矩阵都是都是16行*16列的,且矩阵中的每个元素是16位补码形式的有符号定点数(1位符号位,6位整数位,9位小数位) 要求将Weight I0依次乘以Input I-1 ,Weight I1 ,Weight I2 ,Weight I3 ,Weight I4, Weight I5, Weight I6 , Weight I7,依次得到Input I0 ,Input I1 ,Input I2 ,Input I3 ,Input I4 ,Input I5 ,Input I6 ,Input I7最终输出Input I7 截断要求对于矩阵AB=C,C矩阵的第i行第j列元素是A的第i行和B的第j列进行乘加运算得到的,由于矩阵的元素是16位,两个16位元素相乘结果需要用216-1=31位表示,再考虑相加,因此需要31+4=35位来表示。在这个项目中不考虑相加后会超过31位的情况,只用31位表示。对于Weight I0 * Input I-1=I...
【准研一学习】狂肝15小时整理的Verilog语言入门知识
发表于2022-08-19|编程与算法
闲言稍叙Verilog和VHDL就是目前使用最多的两个硬件描述语言(HDL),如果阅读本文的你也是Verilog新手,这部分闲言或许对你有所启发。 作者本科是计算机科学与技术专业,现在是准研一,方向和硬件相关。由于学艺不精,只会点C、Java,电路、信号、单片机等硬件课程都只懂皮毛。由于课题组研究需要,学习了Verilog语言并总结为本文。 C语言是软件描述语言,编码的核心目的在于经过编译、链接后能够产生机器能够识别的指令序列,进而完成代码功能。而Verilog是硬件描述语言,编码的核心目的在于描述门与门之间的连接,通过综合、实现所写的代码,产生可以转化为芯片的图纸,交由厂商通过光刻来生产所设计的电路,最终经过封装、测试,即通常所称的芯片。 要学习Verilog首先需要一个编程平台,有Vivado、Modelsim等,其中Vivado是用的最多的,但是运行比较慢,Modelsim运行的快,但是界面丑,这个看个人喜好安装就好。 有编程平台后,通过在网站上刷题和看书,逐渐就可以上手了。那么下面列举出我学习Verilog所使用过的网站、书籍: 网站:1.HDLBits网站地址该网站是全...
1…345…9
avatar
TDppy
文章
130
标签
74
分类
11
Follow Me
公告
如何呢,又能怎。
最新文章
【操作系统】RISC-V PLIC总结2026-01-18
欢迎来到潘业成的博客2026-01-12
【操作系统】xv6操作系统中按下键盘回车后发生的事情2026-01-10
【操作系统】手撸xv6操作系统——types.h_param.h_memlayout.h_riscv.h_defs.h头文件解析2026-01-06
【操作系统】手撸xv6操作系统——entry.S和start.c解析2025-12-30
分类
  • 异常处理15
  • 操作系统4
  • 数字IC设计38
  • 片上网络1
  • 环境配置14
  • 程序人生7
  • 编程与算法17
  • 网络安全1
标签
调试 交换机 运算符 图标库 多进程 IDEA Verilog EDA工具 转载 C语言 片上网络 SSL证书 Dev-C++ Office DFT 中断 Web开发 总线 z3 CMake 时序分析 Git 前端 OFDM PyTorch Java CCNA AXI 短信 读书笔记 博客介绍 双系统 网络安全 Tomcat GitHub 算法 Mill 教学操作系统 链接 中间人攻击
归档
  • 一月 2026 4
  • 十二月 2025 1
  • 十月 2025 1
  • 八月 2025 1
  • 四月 2025 1
  • 十月 2024 2
  • 九月 2024 1
  • 八月 2024 4
网站信息
文章数目 :
130
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By TDppy框架 Hexo 6.3.0|主题 Butterfly 5.5.4-b1