Questions tagged «verilog»

Verilog是用于对电子系统建模的硬件描述语言(HDL)。它最常用于数字逻辑芯片的设计,验证和实现。另请在适用时加上[fpga],[asic]或[verification]标记。许多Verilog问题的答案都是针对特定目标的。


2
ASIC设计与FPGA HDL综合有何不同?
我在使用Xilinx ISE,Lattice Diamond等FPGA / HDL工具套件方面有一些经验。一般的工作流程是编写Verilog / VHDL,仿真,测试然后对FPGA进行编程。 我听说有人说ASIC设计有很大不同。两种主要类型的ASIC(门级ASIC和晶体管级ASIC)使用哪些工具集?我一直在研究诸如Catapult C和Cadence C等高级综合工具到硅,但是我从未尝试过。您能否说明ASIC / FPGA领域中可用的不同类型的工具,这些工具可以改变/加快典型的HDL工作流程?
42 fpga  vhdl  verilog  software  asic 

9
FPGA设计可以是大部分(或完全)异步吗?
我们在大学里就读了很短的FPGA / Verilog课程(5年前),并且我们到处都使用时钟。 我现在又开始以FPGA为业余爱好,我不禁对这些时钟感到好奇。它们是绝对必需的,还是基于FPGA的设计可以完全异步?是否可以构建一堆复杂的逻辑,并尽可能快地通过它产生一些波动? 我意识到这有很多陷阱,就像知道何时信号在电路的所有部分传播并且输出稳定一样。那不是重点。我并不是要真正构建一个完全异步的设计,而只是为了提高我对功能的理解。 在我的初学者看来,唯一绝对需要时钟的结构是reg,而我的理解是,典型的FPGA(例如Cyclone II)将其触发器预先连接到特定的时钟信号。这个对吗?是否还有其他类似的隐式时钟,它们通常可以由设计手动驱动吗?
39 fpga  verilog 

7
HDL中CPU的可读性和教育性实现
您能推荐VHDL或Verilog中CPU的可读性和教育性实现吗?最好是有据可查的东西。 PS:我知道我可以看opencores,但是我对人们实际看过并发现有趣的东西特别感兴趣。 PS2。对不起,我很抱歉,但是作为新用户,我无法创建新标签


7
我如何学习HDL
我这学期有一门数字设计课程,并且很喜欢。现在,我知道嵌入式系统和数字设计中的大多数工作都是先在计算机模拟器上完成,然后再使用硬件实现。所以我想知道如何学习HDL。我有几个问题 什么?我不知道标准是什么,但想学习哪种标准很容易掌握。我知道大多数HDL都是为与FPGA一起使用而设计的,那不是我的意思。 怎么样?我应该阅读带有独立示例的教科书,还是应该从事诸如实施小型系统的项目(可能类似于交通信号灯控制)。 哪里?我从哪里可以获得资源?
24 simulation  vhdl  verilog  hdl 

6
串行协议定界/同步技术
由于异步串行通信甚至在当今的电子设备中也很普遍,我相信我们许多人会不时遇到这样的问题。考虑与串行线(RS-232或类似产品)连接并且需要连续交换信息的电子设备D和计算机。即每个发送一个命令帧,并每个发送一个状态报告/遥测帧答复(报告可以作为对请求的响应发送,也可以独立发送-在这里并不重要)。通信帧可以包含任何任意二进制数据。假设通信帧是固定长度的分组。PCPCX msDY ms 问题: 由于协议是连续的,因此接收方可能会失去同步,或者只是在进行中的发送帧中间“加入”,因此它只是不知道帧起始位置(SOF)在哪里。根据数据相对于SOF的位置,数据具有不同的含义,接收到的数据可能会永久损坏。 所需的解决方案 可靠的定界/同步方案可在恢复时间短的情况下检测SOF(即重新同步所需的时间不超过1帧)。 我了解(并使用了一些)的现有技术: 1)标头/校验和 -SOF作为预定义的字节值。帧末的校验和。 优点:简单。 缺点:不可靠。恢复时间未知。 2)字节填充: 优点:可靠,快速恢复,可与任何硬件一起使用 缺点:不适用于固定大小的基于帧的通信 3)第9位标记 -在每个字节之前附加一个位,而SOF标记为1和数据字节标记为0: 优点:可靠,快速恢复 缺点:需要硬件支持。大多数PC硬件和软件未直接支持。 4)第8位标记 -上面的一种模拟,同时使用第8位而不是第9位,每个数据字仅保留7位。 优点:可靠,快速的恢复,可与任何硬件一起使用。 缺点:需要从/到常规8位表示到/从7位表示的编码/解码方案。有点浪费。 5)基于超时 -假定SOF为某个已定义的空闲时间之后的第一个字节。 优点:无数据开销,简单。 缺点:不太可靠。在较差的计时系统(如Windows PC)上无法很好地工作。潜在的吞吐量开销。 问题: 还有哪些其他可能的技术/解决方案可以解决该问题?您能否指出上面列出的缺点,可以轻松解决这些缺点,从而消除它们?您(或您将)如何设计系统协议?
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

5
为什么推断的闩锁不好?
我的编译器抱怨组合循环(always @(*)在Verilog中为)中推断出的闩锁。还告诉我,最好避免使用推断出的闩锁。 推断的闩锁到底有什么问题?它们无疑使组合循环更易于编写。
22 verilog  hdl  latch 

7
测试和验证之间有什么区别?
我看过的每本教科书都充分说明了测试和验证是两个不同的概念。然而,它们都没有一个清晰的(最后对我来说不够清晰)的区别。 为了提供一些背景信息,我对使用硬件设计语言(HDL)验证数字硬件设计感兴趣。 我已经看到了一些解释,这些解释诉诸于“物理”或“有形”差异:如果是关于制造的设备,那么它就是测试。这是整个故事吗?如果是这样,为什么在验证中经常出现“测试”一词(尤其是在功能验证中,我们谈论的是测试用例,测试平台,DUT(被测设备),定向测试,随机测试等。)

3
阻止和非阻止分配Verilog之间的区别
遇到以下情况时,我正在阅读此页面http://www.asic-world.com/verilog/verilog_one_day3.html: 通常,我们必须重置触发器,因此,每当时钟从0过渡到1(摆位)时,我们都会检查是否声明了重置(同步重置),然后继续执行正常逻辑。如果仔细观察,我们会发现在组合逻辑的情况下,分配时使用“ =”,对于顺序块,则使用“ <=”运算符。好吧,“ =”是阻止分配,而“ <=”是非阻止分配。“ =”在开始/结尾内顺序执行代码,而非阻塞“ <=”并行执行。 我相当确定非阻塞分配是顺序的,而阻塞分配是并行的。毕竟,您可以使用always块之外的assign语句进行块分配,并且所有块并行运行。这是一个错误,还是Always块内部的行为不同?而且,如果在始终阻止块内的行为不同,是否可以在始终阻止块外进行非阻止分配?
15 verilog 


4
BJT晶体管如何在饱和状态下工作?
这是我对NPN BJT(双极结型晶体管)的了解: 基极-发射极电流在集电极-发射极处被放大了HFE倍,因此 Ice = Ibe * HFE Vbe是基极-发射极之间的电压,并且与任何二极管一样,通常约为0.65V。不过,我不记得了Vec。 如果Vbe低于最小阈值,则晶体管断开,并且没有电流通过其任何触点。(好的,也许有几微安的泄漏电流,但这无关紧要) 但是我仍然有一些问题: 晶体管饱和时如何工作? 除了Vbe低于阈值以外,是否可以在某些条件下使晶体管处于打开状态? 此外,请随时指出(在答案中)我在这个问题上犯的任何错误。 相关问题: 我不在乎晶体管如何工作,如何使它工作?

5
是什么让我选择Verilog或VHDL而不是CPLD或FPGA上的原理图设计?
我绝对没有可编程逻辑方面的背景知识,在我的项目中主要使用微控制器,但是最近我需要处理视频,并且微控制器的速度太慢了,因此我开始使用CPLD。 仅使用原理图设计,我就能用CPLD取得良好的结果,但是当搜索有关CPLD的信息时,我遇到了许多使用VHDL和Verilog的示例。我很好奇我可能想用其中一种语言定义设备。他们无法做原理图设计做什么?它们主要用于功能吗? 到目前为止,我仅使用CPLD,使用这些语言,FPGA设计是否比CPLD受益更多?

1
Verilog:将向量的所有信号异或
假设我得到一个wire large_bus[63:0]宽度为64 的向量。如何将各个信号进行XOR运算而不将其全部写入: assign XOR_value = large_bus[0] ^ large_bus[1] ^ ... ^ large_bus[63] ? 我对宽度由a指定的向量特别感兴趣localparam。
13 verilog 

6
在C上使用Verilog或VHDL的动机是什么?
我来自编程背景,对硬件或固件(最多是电子产品和Arduino)的了解不多。 在像C或某些Assembly这样的编程语言上使用Verilog和VHDL等硬件描述语言(HDL)的动机是什么? 这是一个选择问题吗? 我读到它的固件写在HDL中的硬件在并行运行指令方面具有明显的优势。但是,令我惊讶的是,有讨论使人们怀疑是否要用C或Assembly编写固件(如果您不一定要有CPU,如何使用Assembly?),我感到很惊讶,但我得出结论,这也是一个选择。 因此,我有几个问题(不要犹豫,解释一下): 固件真的可以用HDL或软件编程语言编写,还是执行相同任务的另一种方式?我喜欢真实的例子。每个选项产生什么约束? 我知道固件在软件上的普遍用法是在硬件加速器(例如GPU,网络适配器,SSL加速器等)中。据我了解,这种加速并非总是必要的,而只是推荐的(例如,在SSL和复杂算法加速的情况下)。在所有情况下都可以在固件和软件之间进行选择吗?如果不是这样,我很乐意使用固件清晰明确的方式。 我读过,固件大部分刻录在ROM或闪存上。它在其中如何表示?像软件一样?如果是这样,有什么深远的区别?如果是固件,是否可以使用自适应电路? 我想我在某些假设下到处都是错误,请原谅。谢谢!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.