CN113283203A - 用于仿真逻辑系统设计的方法、电子设备及存储介质 - Google Patents

用于仿真逻辑系统设计的方法、电子设备及存储介质 Download PDF

Info

Publication number
CN113283203A
CN113283203A CN202110821996.2A CN202110821996A CN113283203A CN 113283203 A CN113283203 A CN 113283203A CN 202110821996 A CN202110821996 A CN 202110821996A CN 113283203 A CN113283203 A CN 113283203A
Authority
CN
China
Prior art keywords
sub
condition
trigger condition
detection module
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110821996.2A
Other languages
English (en)
Inventor
徐欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinhuazhang Technology Co ltd
Original Assignee
Xinhuazhang Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xinhuazhang Technology Co ltd filed Critical Xinhuazhang Technology Co ltd
Priority to CN202110821996.2A priority Critical patent/CN113283203A/zh
Publication of CN113283203A publication Critical patent/CN113283203A/zh
Priority to CN202210864665.1A priority patent/CN115422866A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本公开提供一种用于仿真逻辑系统设计的方法、电子设备及存储介质。该方法包括:获取检测模块的描述,所述检测模块的描述包括触发条件;基于所述检测模块的描述生成所述检测模块的网表文件,其中,所述网表文件包括与所述触发条件对应的第一部分,所述第一部分包括与所述触发条件对应的多个查找表;基于所述第一部分生成配置文件;以及根据所述配置文件在仿真器的控制单元中配置所述多个查找表,以根据所述多个查找表确定所述触发条件是否满足。

Description

用于仿真逻辑系统设计的方法、电子设备及存储介质
技术领域
本说明书一个或多个实施例涉及计算机软件技术领域,尤其涉及一种用于逻辑系统设计的方法、电子设备及存储介质。
背景技术
仿真器(Emulator)可以仿真并且调试逻辑系统设计。逻辑系统设计可以是,例如,用于供专门应用的集成电路(Application Specific Integrated Circuit,简称ASIC)或者片上系统芯片(System-On-Chip,简称SOC)的设计。因此,在仿真器中被测试的逻辑系统设计又可以称为被测试设计(Design Under Test,简称DUT)。仿真器可以通过一个或多个可配置组件(例如,现场可编程逻辑门阵列(Field Programmable Gate Array ,简称FPGA))来仿真该DUT,包括执行该DUT的各种操作,从而在制造之前就测试并验证DUT的功能。
在验证过程中,需要执行触发条件并在触发条件满足时进行信号检测。然而,为实现触发条件的判定,通常需要将触发条件编译生成对应电路结构网表并载入仿真器中,这样的方式无法对特定条件进行灵活调整;或者需要将触发条件转换为控制指令由控制单元执行判定计算,对于较为复杂的触发条件可能会过多占用仿真器资源而对仿真器的性能造成影响。
发明内容
有鉴于此,本公开提出了一种用于仿真逻辑系统设计的方法、电子设备及存储介质。
本公开的第一方面,提供了一种用于仿真逻辑系统设计的方法。所述方法包括:获取检测模块的描述,所述检测模块的描述包括触发条件;基于所述检测模块的描述生成所述检测模块的网表文件,其中,所述网表文件包括与所述触发条件对应的第一部分,所述第一部分包括与所述触发条件对应的多个查找表;基于所述第一部分生成配置文件;以及根据所述配置文件在仿真器的控制单元中配置所述多个查找表,以根据所述多个查找表确定所述触发条件是否满足。
本公开的第二方面,提供了一种用于仿真逻辑系统设计的电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
本公开的第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储电子设备的一组指令,该组指令用于使所述电子设备执行第一方面所述的方法。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A示出了根据本公开实施例的一种电子设备的结构示意图。
图1B示出了根据本公开实施例的示例性编译器的示意图。
图2示出了根据本公开实施例的示例性仿真工具的示意图。
图3A示出了根据本公开实施例的检测模块的示例性描述的示意图。
图3B示出了根据本公开实施例的多个查找表连接结构的示意图。
图4示出了根据本公开实施例的一种用于仿真逻辑系统设计的示例性方法的流程示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如上所述,为了实现对被测试设计(Design Under Test,简称DUT)的功能验证,常常需要执行触发条件判定并在触发条件满足时再触发下一步的信号检测操作,例如探测目标信号、获取相关信号波形等。此过程的关键即如何执行触发条件。相关技术中对于执行触发条件有两种实现方式:一种方式是将特定条件编译成对应电路结构网表并载入仿真器的可配置组件(如现场可编程逻辑门阵列,FPGA)中,通过具体电路结构实现特定条件的判断。这样的方式触发条件转换为实际电路固化在仿真器中,缺乏灵活性,无法根据实际需求对触发条件进行调整。另一种方式将特定条件转换为控制指令由控制单元来执行判定计算,当触发条件较为复杂时仿真器就需要花费较多的资源来执行判定计算,这样的方式会对仿真器的性能造成影响。
鉴于此,本公开实施例提供了一种用于仿真逻辑系统设计的方法。所述方法包括:获取检测模块的描述,所述检测模块的描述包括触发条件;基于所述检测模块的描述生成所述检测模块的网表文件,其中,所述网表文件包括与所述触发条件对应的第一部分,所述第一部分包括与所述触发条件对应的多个查找表;基于所述第一部分生成配置文件;以及根据所述配置文件在仿真器的控制单元中配置所述多个查找表,以根据所述多个查找表确定所述触发条件是否满足。本公开实施例提供的用于仿真逻辑系统设计的方法,获取包括触发条件在内的检测模块的描述,在基于检测模块的描述生成网表文件时在网表文件中的第一部分生成与触发条件相对应的多个查找表,之后基于第一部分生成配置文件,根据配置文件在仿真器的控制单元中来配置与触发条件相对应的这多个查找表,从而利用多个查找表来确定触发条件的值以实现对触发条件的判定。采用这样的方式利用查找表能够快速查询确定触发条件的值而不用耗费过多计算资源,能够有效避免执行触发条件判定对仿真器性能造成的影响,同时也方便根据实际情况对触发条件进行灵活调整,保持处理触发条件的灵活性。
图1A示出了本实施例所提供的一种电子设备100的结构示意图。
电子设备100例如可以是计算机主机。该电子设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在设备内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路。处理器102可以用于执行与本公开描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1A所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图1A所示,存储的数据可以包括程序指令(例如,用于实现本公开的技术方案的程序指令)以及待处理的数据(例如,存储器104可以存储在编译过程产生的临时代码)。处理器102也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向电子设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将电子设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。在一些实施例中,外围借口108可以连接到仿真器(emulator),用于向仿真器传输配置文件。配置文件例如可以包括门级网表、机器码等。
总线110可以被配置为在电子设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述设备仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
图1B示出了根据本公开实施例的示例性编译器120的示意图。在一些实施例中,编译器120可以运行在图1A的电子设备100上。
编译器120可以基于待编译的计算机代码来生成目标代码的计算机程序。待编译的计算机代码又可以称为源代码。在这里,源代码指逻辑系统设计的源代码。通常,编写源代码的源语言是高级编程语言。高级编程语言可以例如是C++、Java等软件编程语言或VHDL、Verilog、SystemVerilog等硬件描述语言。目标代码则可以是例如汇编代码、机器码等。
编译器120例如可以存储在图1A所示的存储器104中,并且由处理器102执行。
如图1B所示,编译器120可以包括前端122、中端124以及后端126。
前端122可以用于根据具体的源语言来分析源代码的词法、语法、语义。
在源代码的词法、语法、语义分析完成后,中端124可以将源代码转换为中间表示(或中间代码),并可以优化该中间表示。例如,中端124可以移除无用的代码、移除不可访问的代码、清除未使用的变量等。优化后的中间表示则可以被传递给后端126进行进一步处理。
后端126可以根据目标处理器(例如,图1A的处理器102)的架构来进一步优化中间表示,并生成目标代码。在一些实施例中,目标代码可以是门级网表以及机器码。门级网表可以用来配置FPGA实现预定电路和功能,而机器码可以由处理单元(例如,仿真器中的控制单元)执行。
例如,编译器120可以根据源代码生成抽象语法树,然后基于该抽象语法树生成中间表示,并最终生成与硬件体系结构相关的机器码。
可以理解的是,编译器的结构不限于图1B的示例。例如,前端122和中端124可以被合称为编译器的前端,或者,中端124和后端126可以被合称为编译器的后端。
图2示出了根据本公开实施例的示例性仿真系统200的示意图。仿真系统200可以包括电子设备100和仿真器210。例如,仿真器210可以是芯华章科技股份有限公司出品的HuaEmu仿真工具。仿真器可以包括现场可编程门级阵列(FieldProgrammableGateArray,FPGA)。通过将门级网表配置到仿真器的FPGA中,可以使得FPGA模拟逻辑系统设计。可以理解的是,仿真器可以包括多个FPGA,而每个FPGA可以仅模拟逻辑系统设计的一部分(例如,一个或多个模块)。
如图2所示,在电子设备100上运行的编译器120可以根据逻辑系统设计202的源代码生成包括门级网表和机器码在内的配置文件204。该配置文件204的一部分(例如,门级网表)可以经由例如电子设备100的外围接口108被载入到仿真器210的FPGA上,该配置文件204的又一部分(例如,机器码)可以经由例如电子设备100的外围接口108被载入到仿真器210的控制单元上。控制单元可以是FPGA的一部分或者独立于FPGA。
仿真器210可以根据配置文件204进行逻辑系统设计202的仿真。其中,仿真器210可以根据配置文件204可执行文件执行触发条件判定,在触发条件满足时触发信号检测操作。例如,仿真器210可以执行判定“a>b && a>c &&a&b&&a|c&& b<c”这一触发条件,响应于此触发条件成立,即表达式“a>b && a>c &&a&b&&a|c&& b<c”的值为真时,触发信号检测操作。仿真器210可以将仿真结果206输出,其中,仿真结果206可以包括信号检测结果(例如目标信号的值、相关信号的波形等)。例如,仿真工具200可以将信号检测结果经由图1A的外围接口108输出到输出设备上(例如,显示在显示器上)。
图3A示出了根据本公开实施例的检测模块的示例性描述300的示意图。
如图3A所示,编译器120可以获取逻辑系统设计中的检测模块(monitor)的描述300。检测模块的描述300可以包括触发条件310“(a>b && a>c && a&b && a|c && b<c)”与触发指令“trigger”。其中,触发条件310可以是包括多个输入信号(如a,b,c等)的布尔型表达式。当触发条件310成立时即“(a>b && a>c && a&b && a|c && b<c)”的值为真时,检测模块可以执行触发指令“trigger”以触发信号检测操作。
编译器120可以基于检测模块的描述300生成该检测模块的网表文件(netlistfile)。在网表文件中包括了与触发条件310相对应的第一部分。因为触发条件310具有多个输入信号(如a,b,c等)且多个输入信号之间往往具有较为复杂的运算关系,直接根据多个输入信号的值计算触发条件310整体的值较为困难。在基于检测模块的描述300生成检测模块的网表文件时,编译器120可以将触发条件310的运算逻辑关系将其分解为多个子条件。
在一个示例中,编译器120可以将触发条件310“(a>b && a>c && a&b && a|c &&b<c)”分解为第一子条件“(a>b)”、第二子条件“(a>c)”、第三子条件“(a&b)”、第四子条件“(a|c)”、第五子条件“(b<c)”以及以第一至第五这五个子条件的输出结果为输入的第六子条件“((a>b) && (a>c) && (a&b) && (a|c) && (b<c))”。在触发条件310分解得到的这六个子条件中,第一至第五这五个子条件属于第一级子条件,第六子条件属于第二级子条件,在第一级中的多个子条件的输出用作第二级中第六子条件的输入,而第六子条件的输出即为触发条件310的值。
在另一个示例中,编译器120可以将触发条件310“(a>b && a>c && a&b && a|c&& b<c)”分解为第一子条件“(a>b && a>c)”、第二子条件“(a&b && a|c)”、第三子条件“(b<c)”,以第一子条件与第二子条件的输出结果为输入的第四子条件“((a>b && a>c) &&(a&b && a|c))”,以及以第三子条件与第四子条件的输出结果为输入的第五子条件“(((a>b && a>c) && (a&b && a|c))&&(b<c))”。在触发条件310分解得到的这五个子条件中,第一子条件与第二子条件属于第一级子条件,第三子条件与第四子条件属于第二级子条件,第五子条件属于第三级子条件,第一级中的第一子条件、第二子条件的输出用作第二级中第四子条件的输入,第二级中第三子条件、第四子条件的输出用作第三级中第五子条件的输入,而第五子条件的输出即为触发条件310的值。
对于触发条件310分解得到的多个子条件而言,子条件多个输入的值与输出之间存在确定的对应关系,可以利用查找表根据多个输入的值直接查询确定对应的输出,因此,编译器120可以根据触发条件310分解得的多个子条件在网表文件与触发条件310对应的第一部分中生成多个相应的查找表。与子条件相对应的,查找表也具有多个输入以及与多个输入相对应的输出。
图3B示出了根据本公开实施例的多个查找表连接结构320的示意图。
以触发条件310“(a>b && a>c && a&b && a|c && b<c)”为例,触发条件310可以被分解为第一子条件“(a>b && a>c)”、第二子条件“(a&b && a|c)”、第三子条件“(b<c)”、第四子条件“((a>b && a>c) && (a&b && a|c))”以及第五子条件“(((a>b && a>c) &&(a&b && a|c))&&(b<c))”。编译器120可以生成分别与这五个子条件相对应的五个查找表,这五个查找表的输入、输出分别与相应的子条件的输出、输出相对应。具体地,查找表3202对应第一子条件“(a>b && a>c)”,第一子条件具有a,b,c这三个输入以及一个输出,查找表3202也具有相对应的三个输入与一个输出。查找表3024对应第二子条件“(a&b && a|c)”,第二子条件具有a,b,c这三个输入以及一个输出,查找表3204也具有相对应的三个输入与一个输出。查找表3206对应第四子条件“((a>b && a>c) && (a&b && a|c))”,第四子条件具有两个输入以及一个输出,查找表3206也具有相对应的两个输入与一个输出。查找表3208对应第三子条件“(b<c)”,第三子条件具有b,c这两个输入以及一个输出,查找表3208也具有相对应的两个输入与一个输出。查找表3210对应第五子条件,第五子条件具有两个输入以及一个输出,查找表3210也具有选项对应的两个输入与个输出。
如图3B所示,编译器120所生成的五个查找表的连接关系也与五个子条件的连接关系相同。在五个子条件中,第一级中的第一子条件、第二子条件的输出用作第二级中第四子条件的输入,相应的查找表3202、查找表3204的输出为查找表3206的输入。第二级中第三子条件、第四子条件的输出用作第三级中第五子条件的输入,相应的查找表3206、查找表3208的输出作为查找表3210的输入。
编译器120可以基于网表文件中与触发条件310相对应的第一部分生成配置文件(如图2中配置文件204)。在基于网表文件生成相应配置文件后,仿真工具200可以根据配置文件将多个查找表配置在仿真器210中。
查找表(Look-Up-Table,LUT)是由输入到输出的真值映射表,映射表可以通过存在在存储器中来实现。在一些实施例中,仿真系统200可以将多个查找表配置在仿真器210的控制单元的存储器中。其中,仿真器210可以包括一个或多个现场可编程逻辑门阵列(Field Programmable Gate Array ,简称FPGA),在一些实施例中,仿真系统200可以将多个查找表配置在FPGA上的控制单元(例如,控制核心(controlcore))中。在一些实施例中,仿真器210可以在FPGA之外进一步包括用于进行通用计算的控制单元,而查找表也可以配置在这些非FPGA的控制单元的存储器中。
在一些实施例中,仿真系统200可以将多个查找表分别配置在存储器的多个存储单元中来实现多个查找表,多个存储单元分别对应存储多个查找表的真值映射表。
通过根据配置文件将多个查找表配置在仿真器210中,仿真器210可以利用多个已配置的查找表以及触发条件310中多个输入信号的值依次查询确定相应多个子条件的值,并根据多个子条件的值确定触发条件310的值以判定触发条件310是否满足。
以图3B所示的多个查找表为例,查找表3202对应于触发条件310的第一子条件“(a>b && a>c)”,根据第一子条件的三个输入信号a,b,c的值,利用存储在存储单元中的真值表3202相应的真值映射表可以查询确定对应于三个输入信号a,b,c第一子条件“(a>b && a>c)”的输出,假设为y1。查找表3204对应于触发条件310的第二子条件“(a&b && a|c)”,根据三个输入信号a,b,c的值,利用查找表3204相应真值映射表查询确定第二子条件“(a&b&& a|c)”的输出,假设为y2。查找表3206对应于触发条件310的第四子条件“((a>b && a>c)&& (a&b && a|c))”,其输入为第一子条件的输出y1与第二子条件的输出y2,根据y1,y2的值利用查找表3206相应真值映射表查询确定第四子条件的输出。可以采用同样的方式最终确定第五子条件的输出,第五子条件的输出即为触发条件310的输出。
仿真器210中控制单元可能存在存储资源有限的情况,控制单元的存储器的存储单元数量不足以同时配置多个查找表,仿真系统200可以先配置部分查找表,仿真器210可以利用先配置的部分查找表查询确定对应的多个子条件的输出,当多个子条件中一个子条件的输出查询确定之后,释放该子条件对应的查找表的存储单元,再利用释放的存储单元实现在先未配置的查找表。
例如,当控制单元的存储器仅包含四个存储单元,利用该控制单元来实现如图3B所示的五个查找表的情况下,仿真系统200可以先选取查找表3202、查找表3204、查找表3206与查找表3208进行配置,首先将这四个查找表配置在控制单元存储器的四个存储单元中,并利用在先配置的查找表3202、查找表3204、查找表3206与查找表3208来确定对应的第一子条件、第二子条件、第四子条件与第三子条件的输出。当第一子条件、第二子条件、第四子条件与第三子条件中的一个子条件(例如第三子条件)的输出查询确定之后,即释放该子条件对应的查找表(例如查找表3208)的存储单元。所释放的存储单元就可以用来配置之前未配置的查找表3210。同理,当控制单元的存储器仅包含三个存储单元时,则先选取三个查找表进行配置,当三个查找表对应三个子条件中有子条件输出查询确定,则释放相应的存储单元,所释放的存储单元用以配置之前未配置的另外两个查找表。
图4示出了根据本公开实施例的一种用于仿真逻辑系统设计的示例性方法400的流程示意图。
该用于仿真逻辑系统设计的方法400可以由图2所示的仿真系统200执行。所述仿真系统200可以包括电子设备100以及仿真器210。电子设备100可以运行编译器120等软件。所述方法400可以包括以下步骤。
在步骤402,编译器120可以获取检测模块的描述(例如,图3A所示的描述300),所述检测模块的描述可以包括触发条件(例如,图3A中的触发条件310)。
在步骤404,编译器120可以基于所述检测模块的描述生成所述检测模块的网表文件。其中,所述网表文件可以包括与所述触发条件对应的第一部分,所述第一部分可以包括与所述触发条件对应的多个查找表(例如,图3B中的查找表3202、查找表3204、查找表3206、查找表3208、查找表3210)。
在一些实施例中,编译器120可以将所述触发条件分解为多个子条件,所述多个子条件可以被分为多个级,所述多个级至少包括第一级和第二级,其中,所述第一级中的子条件的输出用作所述第二级中的子条件的输入。
在一些实施例中,编译器120可以根据所述多个子条件分别生成所述多个查找表。所述多个查找表的一个可以包括多个输入以及与所述多个输入相对应的输出。
在步骤406,编译器120可以基于所述第一部分生成配置文件(例如,图2中的配置文件204);
在步骤408,仿真系统200可以根据所述配置文件在仿真器210的控制单元中配置所述多个查找表,以根据所述多个查找表确定所述触发条件是否满足。其中,所述控制单元可以是在仿真器210中的FPGA上实现的。
在一些实施例中,仿真系统200可以在仿真器210的控制单元的存储器中利用所述存储器的多个存储单元实现所述多个查找表。
在一些实施例中,仿真器210可以利用多个查找表查询确定多个子条件的输出,响应于所述多个子条件中的一个完成处理,仿真器210可以释放该子条件对应查找表的存储单元,将所述释放的存储单元配置为未完成处理的子条件对应的查找表。
本公开实施例提供的用于仿真逻辑系统设计的方法、电子设备,通过获取包括触发条件在内的检测模块的描述,在基于检测模块的描述生成网表文件时在网表文件中的第一部分生成与触发条件相对应的多个查找表,之后基于第一部分生成配置文件,根据配置文件在仿真器的控制单元中来配置与触发条件相对应的这多个查找表,从而利用多个查找表来确定触发条件的值以实现对触发条件的判定。采用这样的方式利用查找表能够快速查询确定触发条件的值而不用耗费过多计算资源,能够有效避免执行触发条件判定对仿真器性能造成的影响,同时也方便根据实际情况对触发条件进行灵活调整,保持处理触发条件的灵活性。
需要说明的是,本公开的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的调试程序的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的用于仿真逻辑系统设计的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (9)

1.一种用于仿真逻辑系统设计的方法,其中,所述方法包括:
获取检测模块的描述,所述检测模块的描述包括触发条件;
基于所述检测模块的描述生成所述检测模块的网表文件,其中,所述网表文件包括与所述触发条件对应的第一部分,所述第一部分包括与所述触发条件对应的多个查找表;
基于所述第一部分生成配置文件;以及,
根据所述配置文件在仿真器的控制单元中配置所述多个查找表,以根据所述多个查找表确定所述触发条件是否满足。
2.根据权利要求1所述的方法,基于所述检测模块的描述生成所述检测模块的网表文件进一步包括:
将所述触发条件分解为多个子条件;
根据所述多个子条件分别生成所述多个查找表。
3.根据权利要求2所述的方法,其中,所述多个子条件被分为多个级,所述多个级至少包括第一级和第二级,其中,所述第一级中的子条件的输出用作所述第二级中的子条件的输入。
4.根据权利要求1所述的方法,其中,所述多个查找表的一个包括多个输入以及与所述多个输入相对应的输出。
5.根据权利要求3所述的方法,根据所述配置文件在仿真器的控制单元中配置所述多个查找表进一步包括:
在所述控制单元的存储器中利用所述存储器的多个存储单元实现所述多个查找表。
6.根据权利要求5所述的方法,其中,
响应于所述多个子条件中的一个完成处理,释放该子条件对应查找表的存储单元;
将所述释放的存储单元配置为未完成处理的子条件对应的查找表。
7.根据权利要求1所述的方法,其中,所述控制单元是在仿真器中的FPGA上实现的。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1至7任一所述方法。
CN202110821996.2A 2021-07-21 2021-07-21 用于仿真逻辑系统设计的方法、电子设备及存储介质 Pending CN113283203A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110821996.2A CN113283203A (zh) 2021-07-21 2021-07-21 用于仿真逻辑系统设计的方法、电子设备及存储介质
CN202210864665.1A CN115422866A (zh) 2021-07-21 2022-07-21 用于在仿真器上仿真逻辑系统设计的方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110821996.2A CN113283203A (zh) 2021-07-21 2021-07-21 用于仿真逻辑系统设计的方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113283203A true CN113283203A (zh) 2021-08-20

Family

ID=77286823

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110821996.2A Pending CN113283203A (zh) 2021-07-21 2021-07-21 用于仿真逻辑系统设计的方法、电子设备及存储介质
CN202210864665.1A Pending CN115422866A (zh) 2021-07-21 2022-07-21 用于在仿真器上仿真逻辑系统设计的方法及相关设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210864665.1A Pending CN115422866A (zh) 2021-07-21 2022-07-21 用于在仿真器上仿真逻辑系统设计的方法及相关设备

Country Status (1)

Country Link
CN (2) CN113283203A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114329644A (zh) * 2021-11-17 2022-04-12 芯华章科技股份有限公司 对逻辑系统设计进行加密仿真的方法、设备及存储介质
CN115291963A (zh) * 2022-06-17 2022-11-04 芯华章科技股份有限公司 配置硬件资源的方法、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375906A (zh) * 2010-08-27 2012-03-14 雅格罗技(北京)科技有限公司 一种基于模式匹配的fpga逻辑综合方法
CN102375905A (zh) * 2010-08-27 2012-03-14 雅格罗技(北京)科技有限公司 一种针对改进逻辑单元的集成电路的工艺映射方法
CN106650103A (zh) * 2016-12-23 2017-05-10 中国人民解放军军械工程学院 部分双模冗余的故障检测电路的设计方法
CN111931445A (zh) * 2020-10-09 2020-11-13 芯华章科技股份有限公司 用于调试逻辑系统设计的方法、仿真器及存储介质
CN112230113A (zh) * 2019-06-28 2021-01-15 瑞萨电子株式会社 异常检测系统和异常检测程序
CN112462240A (zh) * 2020-12-04 2021-03-09 国微集团(深圳)有限公司 支持跨芯片信号同步触发检测方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375906A (zh) * 2010-08-27 2012-03-14 雅格罗技(北京)科技有限公司 一种基于模式匹配的fpga逻辑综合方法
CN102375905A (zh) * 2010-08-27 2012-03-14 雅格罗技(北京)科技有限公司 一种针对改进逻辑单元的集成电路的工艺映射方法
CN106650103A (zh) * 2016-12-23 2017-05-10 中国人民解放军军械工程学院 部分双模冗余的故障检测电路的设计方法
CN112230113A (zh) * 2019-06-28 2021-01-15 瑞萨电子株式会社 异常检测系统和异常检测程序
CN111931445A (zh) * 2020-10-09 2020-11-13 芯华章科技股份有限公司 用于调试逻辑系统设计的方法、仿真器及存储介质
CN112462240A (zh) * 2020-12-04 2021-03-09 国微集团(深圳)有限公司 支持跨芯片信号同步触发检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
是这耀眼的瞬间: ""FPGA 查找表和寄存器等详解", 《HTTPS://BLOG.CSDN.NET/QIUZHONGWEIWEI/ARTICLE/DETAILS/78555592》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114329644A (zh) * 2021-11-17 2022-04-12 芯华章科技股份有限公司 对逻辑系统设计进行加密仿真的方法、设备及存储介质
CN114329644B (zh) * 2021-11-17 2023-03-24 芯华章科技股份有限公司 对逻辑系统设计进行加密仿真的方法、设备及存储介质
CN115291963A (zh) * 2022-06-17 2022-11-04 芯华章科技股份有限公司 配置硬件资源的方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN115422866A (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
US20180032357A1 (en) Debug environment for a multi user hardware assisted verification system
CN115422866A (zh) 用于在仿真器上仿真逻辑系统设计的方法及相关设备
CN112100957B (zh) 用于调试逻辑系统设计的方法、仿真器、存储介质
CN112287569B (zh) 用于仿真逻辑系统设计的方法、电子设备及存储介质
WO2016026328A1 (zh) 一种信息处理方法、装置及计算机存储介质
CN112597064B (zh) 对程序进行仿真的方法、电子设备及存储介质
CN112434478B (zh) 仿真逻辑系统设计的虚拟接口的方法及相关设备
US9619598B2 (en) Input space reduction for verification test set generation
CN114548027A (zh) 在验证系统中追踪信号的方法、电子设备及存储介质
CN115827568B (zh) 获取逻辑系统设计的数据的方法、电子设备和存储介质
CN115470125B (zh) 基于日志文件的调试方法、设备以及存储介质
CN112506806B (zh) 用于调试程序的方法、电子设备及存储介质
CN115827636A (zh) 存储及从波形数据库读取逻辑系统设计的仿真数据的方法
CN115688643A (zh) 仿真逻辑系统设计的方法、设备及存储介质
CN112232003B (zh) 对设计进行仿真的方法、电子设备及存储介质
CN112131806A (zh) 验证设计的编译方法、电子设备及存储介质
CN114912396A (zh) 基于虚拟接口实现逻辑系统设计的物理接口的方法及设备
CN114328062A (zh) 校验缓存一致性的方法、装置和存储介质
US10783293B2 (en) Circuit design system, checking method, and non-transitory computer readable medium thereof
CN112464636A (zh) 约束文件的比较方法、装置、电子设备和存储介质
CN114169287B (zh) 生成验证环境的连接示意图的方法、电子设备及存储介质
CN117172168A (zh) 在仿真中实现回调的方法、电子设备和存储介质
CN116151187B (zh) 处理触发条件的方法、装置和存储介质
CN112989736B (zh) 用于检测修改设计的错误实例的方法、设备及存储介质
CN116911219A (zh) 用于逻辑系统设计的仿真的方法、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210820