练习十. 通过模块之间的调用实现自顶向下的设计目的:学习状态机的嵌套使用实现层次化、结构化设计。
现代硬件系统的设计过程与软件系统的开发相似,设计一个大规模的集成电路的往往由模块多层次的引用和组合构成。层次化、结构化的设计过程,能使复杂的系统容易控制和调试。 在Verilog HDL中,上层模块引用下层模块与C语言中程序调用有些类似,被引用的子模块在综合时作为其父模块的一部分被综合,形成相应的电路结构。在进行模块实例引用时,必须注意的是模块之间对应的端口,即子模块的端口与父模块的内部信号必须明确无误地一一对应,否则容易产生意想不到的后果。
下面给出的例子是设计中遇到的一个实例,其功能是将并行数据转化为串行数据送交外部电路编码,并将解码后得到的串行数据转化为并行数据交由CPU处理。显而易见,这实际上是两个独立的逻辑功能,分别设计为独立的模块,然后再合并为一个模块显得目的明确、层次清晰。
// ---------------- p_to_s.v ---------------------------------
module p_to_s(D_in,T0,data,SEND,ESC,ADD_100);
output D_in,T0; // D_in是串行输出,T0是移位时钟并给
// CPU中断,以确定何时给出下个数据。
input [7:0] data; //并行输入的数据。
input SEND,ESC,ADD_100; //SEND、ESC共同决定是否进行并到串
//的数据转化。ADD_100决定何时置数。
wire D_in,T0;
reg [7:0] DATA_Q,DATA_Q_buf;
assign T0 = ! (SEND & ESC); //形成移位时钟。.
assign D_in = DATA_Q[7]; //给出串行数据。
always @(posedge T0 or negedge ADD_100) //ADD_100下沿置数,T0上沿移位。
begin
if(!ADD_100)
DATA_Q = data;
else
begin
DATA_Q_buf = DATA_Q<<1; //DATA_Q_buf作为中介,以令综合器
DATA_Q = DATA_Q_buf; //能辨明。
end
end
endmodule
在p_to_s.v中,由于移位运算虽然可综合,但是不是简单的RTL级描述,直接用DATA_Q<=DATA_Q<<1的写法在综合时会令综合器产生误解。另外,在该设计中,由于时钟T0的频率较低,所以没有象以往那样采用低电平置数,而是采用ADD_100的下降沿置数。
//--------------------- s_to_p.v ---------------------------
module s_to_p(T1, data, D_out,DSC,TAKE,ADD_101);
output T1; //给CPU中断,以确定CPU何时取转化
//得到的并行数据。
output [7:0] data;
input D_out, DSC, TAKE, ADD_101; //D_out提供输入串行数据。DSC、TAKE
//共同决定何时取数。
wire [7:0] data;
wire T1,clk2;
reg [7:0] data_latch, data_latch_buf;
assign clk2 = DSC & TAKE ; //提供移位时钟。
assign T1 = !clk2;
assign data = (!ADD_101) ? data_latch : 8'bz;
always@(posedge clk2)
begin
data_latch_buf = data_latch << 1; //data_latch_buf作缓冲
data_latch = data_latch_buf; //,以令综合器能辩明。
data_latch[0] = D_out;
end
endmodule
将上面的两个模块合并起来的sys.v的源代码:
//------------------- sys.v ---------------------------
`include "./p_to_s.v"
`include "./s_to_p.v"
module sys(D_in,T0,T1, data, D_out,SEND,ESC,DSC,TAKE,ADD_100,ADD_101);
input D_out,SEND,ESC,DSC,TAKE,ADD_100,ADD_101;
inout [7:0] data;
output D_in,T0,T1;
p_to_s p_to_s(.D_in(D_in),.T0(T0),.data(data),
.SEND(SEND),.ESC(ESC),.ADD_100(ADD_100));
s_to_p s_to_p(.T1(T1),.data(data),.D_out(D_out),
.DSC(DSC),.TAKE(TAKE),.ADD_101(ADD_101));
endmodule
测试模块源代码:
//-------------Top test file for sys.v ------------------
`timescale 1ns/100ps
`include "./sys.v"
module Top;
reg D_out,SEND,ESC,DSC,TAKE,ADD_100,ADD_101;
reg[7:0] data_buf;
wire [7:0] data;
wire clk2;
assign data = (ADD_101) ? data_buf : 8'bz;
//data在sys中是inout型变量,ADD_101
//控制data是作为输入还是进行输出。
assign clk2 =DSC && TAKE;
initial
begin
SEND = 0;
ESC = 0;
DSC = 1;
TAKE = 1;
ADD_100 = 1;
ADD_101 = 1;
end
initial
begin
data_buf = 8'b10000001;
#90 ADD_100 = 0;
#100 ADD_100 = 1;
end
always
begin
#50;
SEND = ~SEND;
ESC = ~ESC;
end
initial
begin
#1500 ;
SEND = 0;
ESC = 0;
DSC = 1;
TAKE = 1;
ADD_100 = 1;
ADD_101 = 1;
D_out = 0;
#1150 ADD_101 = 0;
#100 ADD_101 =1;
#100 $stop;
end
always
begin
#50 ;
DSC = ~DSC;
TAKE = ~TAKE;
end
always @(negedge clk2) D_out = ~D_out;
sys sys(.D_in(D_in),.T0(T0),.T1(T1),.data(data),.D_out(D_out),
.ADD_101(ADD_101), .SEND(SEND),.ESC(ESC),.DSC(DSC),
.TAKE(TAKE),.ADD_100(ADD_100));
endmodule
仿真波形:[[wysiwyg_imageupload:255:]]
练习:设计一个序列发生器。要求根据输入的8位并行数据输出串行数据,如果输入数据在0—127之间则输出一位0,如果输入数据在128—255之间则输出一位1,同步时钟触发;并且和范例8的序列检测器搭接,形成一个封闭系统。编写测试模块,并给出仿真波形。
通过模块之间的调用实现自顶向下的设计
- 模块(46367)
- 状态机(27117)
相关推荐
通过无线通信收发模块实现单片机之间通信的解决方案
与有线数据传输相比,无线数据传输以成本低廉、适应性好、扩展性好、组网简单方便、设备维护简单等特点在工业生产、抄表系统、离散环境下的监控系统、点菜系统等众多领域得到广泛的运用。下面通过无线通信收发模块D21DL来实现两个单片机之间的通信。
2018-02-28 09:01:048762
汇编语言模块调用C++函数实例
现在编写一个简单的应用程序,提示用户输入整数,通过移位的方式将其与 2 的幕 (2¹〜2ⁿ) 相乘,并用填充前导空格的形式再次显示每个乘积。输入-输出使用 C++。汇编模块将调用 3 个 C++ 编写的函数。程序将由 C++ 模块启动。
2022-10-11 09:52:20672
CanTrcv_SetOpMode被哪个模块调用?在什么场景下调用?
CanTrcv模块在上电后的初始状态配置,一般配置初始状态为SLEEP状态。而后,CanTrcv模块的状态通过其他模块调用CanTrcv_SetOpMode来切换。
2022-10-31 10:58:091693
Linux系统调用的实现与应用
在计算机科学中,系统调用(System Call)是一种操作系统提供的服务,它允许应用程序通过软件中断的方式访问操作系统内核中的函数。这些函数提供了一系列与硬件相关的服务,例如文件系统访问、进程管理、网络通信等。应用程序通过系统调用接口来调用这些函数,以便实现各种功能。
2023-06-14 11:46:37338
Linux内核中系统调用详解
Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。
2023-08-23 10:37:22577
通过CALL命令调用cmd脚本实现NVM读取
和具体使用方法1.4 save命令详解2. 通过CALL命令调用cmd脚本实现NVM读取2.1 CMD命令脚本和CALL命令详解2.2 读取S12G128的片上NVM数...
2021-11-04 07:52:57
通过LabVIEW调用DLL文件,实现USB HID的双向通信
通过LabVIEW调用DLL文件,实现USB HID的双向通信。(说明:请不要向我索要LabVIEW源代码,开发千般辛苦,况且是公司的代码,我相信大家的水平都比我高,通过下面的入门介绍,相信大家可以
2011-11-30 11:22:57
通过LabVIEW与MATLAB设计模糊参数自整定PID
摘 要:探讨在MATLAB中使用FIS编辑器与Simulink相结合的方法构造模糊推理结构,并通过MATLAB Script Node实现LabVIEW与MATLAB的混合编程,设计出具有模糊自整定
2019-04-03 09:40:03
通过vi调用节点,调用vi的问题
通过vi节点,打开前面板,运行vi等等。但是比如说我需要从用户登录界面,通过vi调用节点,打开某个试验界面,同时希望是淡入淡出的效果,也就是通过设置透明度来实现。可是开运行到节点的时候,会咔2、3
2013-08-23 21:41:58
DSP与FPGA之间的通信如何实现
大家好,我现在在画一块28335的板子,想实现与FPGA之间的通信,但是不知道该怎样设计,包括FPGA与DSP连接的引脚、通过内部什么模块实现数据通信,现在一头雾水,请大家帮忙。谢谢。
2018-12-03 15:55:34
EDA技术有什么特征?
EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件
2019-10-08 14:25:32
ESD设计与综合
设计中的ESD分析。外围和核心电路的I/O布局及其在ESD和Latchup下的应用。在“自底向上”和“自顶向下”两种方法下进行保护环整合,将涵盖I/O保护环、ESD保护环、I/O至I/O之间和I/O至
2013-09-04 09:17:26
LCD的通用驱动电路IP核设计
本帖最后由 gk320830 于 2015-3-8 09:29 编辑
LCD的通用驱动电路IP核设计 摘 要:本文介绍了一种新型的LCD驱动电路IP核的总体设计,采用自顶向下的设计方法将其
2012-08-12 12:28:42
Overlay的增加段代码之间的调用关系功能
主要讲其中的Overlay的增加段代码之间的调用关系功能。keil编译后可以在.m51文件中看到这样的一段类似代码:即所谓的call tree。keil编译的时候会建立call tree,以适当
2022-01-27 06:05:30
RTL8196C模块/入墙式AP模块/吸顶AP模块/无线中继模块/AP模块
`在RTL8196C的应用设计十分丰富,我们所提及的RTL8196C模块主要是指它作为无线网络设备模块的使用!供电方式:通过DIP排针插座;通过DC座子;通过RJ-45采用POE供电;通过焊盘直接
2013-03-29 13:40:40
labview通过调用7Z实现文件压缩
7Z对大文件的压缩率高,对于大文件存储省空间。范例可实现labview对7Z的调用。如果调用失败,请检查电脑是否安装了7Z。
2021-07-21 12:01:32
分享两个组合逻辑模块化设计实例以及仿真和上板演示过程
功能模块同样可以再继续分解为多个更底层的模块,这就是自顶向下的设计思想,也是目前主流的数字系统设计思想,而模块化设计就是遵循这一设计思想的重要设计方法。事实上,无论多么复杂的系统总能够逐步分解为多个
2022-07-22 15:12:19
基于自顶向下技术的工程机械Digital Prototyping设计方法及应用
【作者】:刘雪冬【来源】:《华南理工大学》2009年【摘要】:自顶向下的设计方法及装配建模技术是在消费品行业应用比较成熟的一种设计方法和理论;但是有鉴于通用机械设计的复杂性、多样性和关联性等特点
2010-04-24 09:20:57
基于自顶向下技术的工程机械Digital Prototyping设计方法及应用
阅卷系统;3.实施操作考试,收集考试文档,用自行编写的计算机自动阅卷系统进行评分并改进这个系统;4.通过团体合作和积累,进一步开发智能组卷、防作弊、学习情况分析等…【关键词】:职业教育;;操作考试
2010-04-24 09:20:41
基于FPGA的直流电机调速系统设计资料分享
功能本设计主要分为三个主要部分:按键控制部分、数码管转速档位显示部分、PWM信号产生部分。分别采用verilog 语言完成底层模块的设计和以原理图的方法完成顶层模块的设计,采用自顶向下的设计方法
2022-02-17 06:57:54
大神们,我现在要用labview通过串口向下位机芯片烧程序
大神们,我现在要用labview通过串口向下位机芯片烧程序,目前我用一个烧程序的.exe可执行文件,那我该如何实现呢?就是在上位机上一点下载程序的按钮,程序就通过串口烧到芯片上去了?求指教
2015-11-13 15:01:49
如何通过调用mNfcTag写入邮箱?
我们有一个问题,我们正在尝试使用邮箱通过 NFC 上传新的固件版本。我们的引导加载程序空间有限,因此我们为它想出了一个简单的协议;尝试通过调用 mNfcTag 写入邮箱
2023-01-05 06:24:02
如何利用cadenceVirtuoso实现一个完整的射频芯片的设计?
本文详细讨论了基于cadenceVirtuoso设计平台的单片射频收发集成电路的设计过程。讨论了利用VirtUOSO工具完成的自顶向下、从系统到模块、从前端都后端的整个设计步骤,直到实现一个完整的射频芯片。
2021-04-22 06:57:22
如何用EDA设计全数字三相昌闸管触发器IP软核?
本文利用先进的EDA软件,用VHDL硬件描述语言采用自顶向下的模块化设计方法,完成了具有相序自适应功能的双脉冲数字移相触发器的IP软核设计。
2021-04-28 06:39:00
如何设计一种基于FPGA的AGWN信号生成器?
本文就是通过分析AGWN的性质,采用自顶向下的设计思路,将AGWN信号分成若干模块,最终使用Verilog硬件描述语言,完成了通信系统中AGWN信号发生电路的设计和仿真,其实质上是设计一个AGWN
2021-05-08 09:20:16
层次原理图如何设计
中间的操作过程有些差异。 自顶向下的设计方法。 康龙思义,首项向下设计就是说先给制最上层的原理围,然后再向下分别院光要个模块的果理图,此方法道用于开展一个全新的改计, 从上往下一段一般光成
2019-01-17 16:55:16
嵌入式C语言程序设计基础大汇总
是运行速度快、编译效率高、移植性好和可读性强。C语言具有简单的语法结构和强大的处理功能,并可方便地实现对系统硬件的直接操作。C语言支持模块化程序设计结构,支持自顶向下的结构化程序设...
2021-11-09 07:13:02
怎么使用VHDL语言设计一个高效的微控制器内核?
通过对传统MCS-51单片机指令时序和体系结构的分析,使用VHDL语言采用自顶向下的设计方法重新设计了一个高效的微控制器内核。
2021-04-13 06:10:59
现代数字系统的设计方法有哪些
。最后一步是进行 ASIC 的版图设计,即将电路转换成版图,或者用可编程ASIC 实现(CPLD/FPGA)。图 1.3.1 是“自底向上”和“自顶向下”两种设计方法的设计步骤。
2019-02-27 14:00:22
组合逻辑模块化设计之静态数码管显示一
同样可以再继续分解为多个更底层的模块,这就是自顶向下的设计思想,也是目前主流的数字系统设计思想,而模块化设计就是遵循这一设计思想的重要设计方法。事实上,无论多么复杂的系统总能够逐步分解为多个
2022-07-29 15:50:16
请教一下,动态调用时各个VI之间的数据交互是怎么实现的
想请问一下,一般编的大程序,如果是主界面程序采用动态调用各个模块的子VI面板时。如果现在主界面程序和各个子VI之间有数据交互的话,一般都是怎么实现的。我用全局变量可以很简单实现,但是如果数据一大的话
2016-04-20 17:41:01
远距离射频卡读写器数字处理模块的设计怎么实现?
本文较系统地介绍了一类远距离射频卡读写器数字处理模块的设计,特别在于采用单片CPLD实现了射频卡读写器数字模块功能,采用了原理图和VHDL相结合自顶向下的设计方法,样机PCB版面积小,开发周期短
2021-05-07 06:00:47
I2C总线串行数据接口的Verilog 实现
本文介绍了I2C总线规范,并根据该规范对I2C进行模块化设计,用Verilog HDL 语言对每个模块进行具体描述,并通过模块之间的调用,基本实现了I2C的主机从机的发送和接收功能。
2009-06-15 10:44:03144
VB控件使用大全 (VB6.0中通过MSChart控件调用数
VB控件使用大全:《 VB6.0中通过MSChart控件调用数据库 》
02.txt 《 用VB6实现动态增减控件 》
03.txt ActiveX控件的创建
04.txt ADO控件和DATA控
2009-09-13 15:34:351264
虚拟仪器调用MessageBox函数的实现
虚拟仪器软件设计中以图形化语言LABVIEW为主,但在遇到LABVIEW不易实现的功能时,可通过在LABVIEW中调用其他函数来实现。本文介绍了在LABVIEW中调用Win32 APIMessageBox的方法和配置CLF
2009-09-14 15:07:3623
ASM51无参数化调用C51函数的实现
【摘 要】利用汇编模块对C51模块进行“无参数”式调用,从根本上避开了传统汇编模块和C51模块之间调用时的繁琐接口编程问题,本文以实例验证了该方法的优越性和有效性。
2009-05-18 22:01:001159
ARM linux系统调用的实现原理
大家都知道linux的应用程序要想访问内核必须使用系统调用从而实现从usr模式转到svc模式。下面咱们看看它的实现过程。
2011-05-30 11:24:362158
调用DLL实现LabVIEW数据采集
介绍了在LabVIEW 中调用外部程序代码的方法。详细探讨了DLL 文件的调用方法,并通过实例介绍了基于非NI 公司的数据采集卡的数据采集的实现.
2012-03-26 15:30:05152
基于linux系统实现的vivado调用VCS仿真教程
VCS-MX的版本,可以混合编译Verilog和VHDL语言 由于在linux系统中个人用户各种权限被限制,导致很多地方无法正常使用软件之间的协调工作。 为了以防万一,在此以个人用户去实现vivado调用VCS仿真。
2018-07-05 03:30:0010733
浅谈C、C++ 和 ARM 汇编语言之间的调用
12.4 C target=_blank style=cursor:pointer;color:#D05C38;text-decoration:underline;》C、C++ 和 ARM 汇编语言之间
2017-10-19 09:24:282
实现多ARM节点通过无线通信完成对批量节点的程序烧录
项目旨在实现多ARM节点通过无线通信完成对批量节点的程序烧录。系统分为上位机、发射接收模块和待烧录节点三个部分,上位机通过ID号选择待烧录节点并通过无线模块向下广播烧录数据,各被选择节点通过无线模块
2018-02-02 05:53:301105
单模光模块和多模光模块之间的区别
随着光通讯、数据中心的发展,光模块的应用越来越广泛。而光模块类型、传输数据也是越来越多样化。40G光模块、100G光模块;单模光模块、多模光模块等等。今天,给大家介绍的是单模光模块和多模光模块,这两者之间的区别是什么。
2018-05-03 10:36:0029339
透了解系统调用助你成为Linux下编程高手
Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。
2018-05-11 11:27:423105
你知道Linux系统调用的原理
系统调用是应用程序与操作系统内核之间的接口,它决定了程序如何与内核打交道的。无论程序是直接进行系统调用,还是通过运行库,最终还是会到达系统调用这个层面上
2019-05-16 16:21:311304
Linux下系统调用的技巧
。N取0~5之间的整数。 参数个数为N的系统调用由_syscallN()负责格式转换和参数传递。系统调用号放入EAX寄存器,启动INT 0x80 后,规定返回值送EAX寄存器。 (3)系统调用功能模块
2019-04-02 14:36:48284
实现原理图模块化调用原理图的具体步骤
我们如何原理图模块实现模块化调用原理图,原理图实现多通道的设计从而一次性影响到我们的 PCB 多通道,这样比我们使用片段调用,拷贝 room 还有更加方便和便捷。
2019-09-02 16:47:0610509
S71200 CPU通过ETHERNET与S7300 PN口之间TCP通信的方式
S7-1200与S7-300PN口之间的以太网通信可以通过TCP协议来实现,使用的通信指令是在双方CPU 调用T-block(TSEND_C,TRCVC,TCON,TDISCON,TSEND,TRCV)指令来实现。
2019-12-02 08:00:004
.NET应用程序可以直接调用WebAssembly模块了
WebAssembly Runtime现已添加.NET Core API,开发者可直接在.NET应用程序中调用WebAssembly模块。
2019-12-10 11:35:382196
Linux的系统调用是什么
所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口获得操作系统内核提供的服务。例如,用户可以通过进程控制相关的系统调用来创建进程、实现进程之间的通信等。
2020-06-11 09:33:032120
系统调用是如何实现的?
这张图画了挺久的,主要是想让大家可以从全局角度,看下linux内核中系统调用的实现。 在讲具体的细节之前,我们先根据上图,从整体上看一下系统调用的实现。 系统调用的实现基础,其实就是两条汇编指令
2021-02-20 16:46:453583
探讨VHDL和Verilog模块互相调用的问题
再 VHDL的模块就是通过声明一个元件(component)来调用这个Verilog模块,将元件声明提出来讲,如下图: 对比这个Veril
2021-04-30 14:06:048673
系统调用具体是如何实现的
系统调用就是调用操作系统提供的一系列内核功能函数,因为内核总是对用户程序持不信任的态度,一些核心功能不能直接交由用户程序来实现执行。用户程序只能发出请求,然后内核调用相应的内核函数来帮着处理,将结果
2021-09-29 11:10:563274
Linux内核系统调用概述及实现原理
本文介绍了系统调用的一些实现细节。首先分析了系统调用的意义,它们与库函数和应用程序接口(API)有怎样的关系。然后,我们考察了Linux内核如何实现系统调用,以及执行系统调用的连锁反应:陷入
2022-05-14 14:11:461874
Quartus II中通过调用IP核实现RS编解码
的,特别是在短的中等码长下,性能接近香农限。本文是基于课题的要求,在Quartus II软件中通过调用IP核的方式实现RS编译码过程,并通过Modelsim进行仿真验证。
2022-09-28 10:02:212
eda自顶向下的设计方法 eda自顶向下设计优点
EDA(Electronic Design Automation,电子设计自动化)自顶向下的设计方法是一种常见的电子电路设计方法。该方法将电路设计分为多个模块,从系统级别出发,逐步分解成较低层次的模块,直到达到设计细节的层次,最终将每个模块进行详细的设计。
2023-04-10 16:49:222371
Verilog中跨模块调用的两种不同方式的优缺点讨论
在写Verilog TestBench,为了更方便更抽象地对底层模块内部的信号进行控制,经常会使用到跨模块调用的方式,这个就叫做Cross Module Reference,缩写为XMR。
2023-06-06 16:00:563121
干货分享 | TSMaster标定模块自动化控制应用指南
二、标定自动化控制场景与TSMaster实例2.1C脚本实现控制标定模块的启动与关闭的设计2.2C脚本代码实现2.3测试与验证C脚本的标定功能三、通过python调用
2023-06-21 17:45:40482
调用HLS的FFT库实现N点FFT
在HLS中用C语言实现8192点FFT,经过测试,实验结果正确,但是时序约束不到100M的时钟,应该是设计上的延时之类的比较大,暂时放弃这个方案,调用HLS中自带的FFT库(hls:fft
2023-07-11 10:05:35580
系统调用:用户栈与内核栈的切换(上)
当发生系统调用、产生异常,外设发生中断等事件时,会发生用户栈和内核栈之间的切换, 本文从系统调用角度分析用户栈与内核栈的切换。 系统调用的演变 x86 的系统调用经历了 int / iret
2023-07-31 11:27:45560
Linux系统调用的具体实现原理
文我将基于 ARM 体系结构角度,从 Linux 应用层例子到内核系统调用函数的整个过程来梳理一遍,讲清楚linux系统调用实现原理,这里我们以open系统调用为例来讲解。
2023-09-05 17:16:46719
python函数与函数之间的调用
函数与函数之间的调用 3.1 第一种情况 程序代码如下: def x ( f ): def y (): print ( 1 ) return y def f (): print
2023-10-04 17:17:00306
CWDM光模块与DWDM光模块它们之间究竟有何区别呢?
的工作原理、优缺点以及应用领域。 1. 工作原理: CWDM通过将不同的光信号通过多个不同的波长进行编码来实现信号的复用。CWDM系统通常在波长范围在1270nm到1610nm之间的固定波长
2023-12-07 09:07:29326
电口模块SFP-GE-T:实现光口与电口之间的转换
电口模块是一种用于实现光口转电口功能的设备,在网络通信中起到重要作用。电口模块没有光电转换的过程,只是传输电信号。本文介绍电口模块的作用、分类、以及使用方法。
2024-01-08 13:38:47271
verilog如何调用其他module
。 1.2 为什么要调用其他模块? 在复杂的设计中,我们通常需要实现各种不同的功能,并且这些功能往往可以通过不同的模块来实现。通过调用其他模块,我们可以将问题分解为更小的子问题,并且可以更方便地实现和维护我们的设计。 1.3 调用模块的基本语法
2024-02-22 15:56:25325
评论
查看更多