算法模板01
快速排序
思想:分治
确定分界点:q[l]/ q[(l+r)/2] /q[r] /随机
==(难点)==调整区间:≤x x ≥x
递归处理左右两段
暴力做法:
设置a[],b[]
对于q[l~r]:
q[i]≤x,x->a[]
q[i]≥x,x->b[]
a[]->q[],b[]->q[]
优美做法:
设置双指针l,r
i往右移动,直到看到≥x的数
j往左移动,直到看到≤x的数
swap(i,j)
循环,直到i,j相遇
12345678910111213void quick_sort(int q[],int l,int r){ if(l>=r) return;//判边界,如果只有一个数/没有数直接返回 int i=l-1,j=r+1,x=q[l]; while(i<j) { do i++;while(q[i]<x); do j--;while(q[j]>x); ...
Typora使用笔记
标题##这是二级标题
ctrl+数字,数字是几就对应几级标题
数字为0变成普通文本
ctrl+"+"/"-"字体变大/变小
这是五级标题段落换行/分段这是第一段 shift+enter
第一段的第二行 enter
这是第二段
这是第一段第一段的第二行
这是第二段
分割线---
文字显示加粗**加粗**
我是加粗
删除线alt+shift+5
我是删除线
下划线ctrl+u
我是下划线
斜体ctrl+I
*斜体*
我是斜体
高亮==高亮==
==我是高亮==
拓展:1\*2\*3……
1*2*3……
也就是要想“*”显示出来,应该加上\正斜线符号
1\\*2\\*3……
1\2\3……
也就是既要显示\,又要显示*,在前面再加一个“\”即可
上下标x^2^
x^2^
H~2~O
H2O
拓展:x~1~1^2^
x1^2^
上下标的局限性
列表无序列表* 列表
+ 列表
- 列表
enter+enter 推出:按两次enter键即可
列表
退出:按两次enter键即可
子集类在上一节的基础上,换行
tab ...
SVA-GRAMMAR
SVA的位置在.v文件中
module ABC();
rtl代码
SVA断言
end mudule
断言的格式
断言1
assert property(事件1)
$display("......",$time);
else
$display(".......",$time);
断言2
assert property(事件2)
$display("......",$time);
else
$display(".......",$time);
含义:断定”事件1”和“事件2”会发生,如果发生了,记作pass,否则记作fail
事件1和事件2的两种书写格式
序列块
sequence name;//常用于组合逻辑断言
...
endsequence
属性块
property name;//常用于有时间观念的断言,可用于调用sequence
...;
endproperty
调用sequence或者property
assert property(name)
带参数的property,sequrnce
assert property(p1(a,b))//调用的pr ...
daily_plan
1
读书,学习1h
英语单词×200
keep×5
文献2h
假期安排
edb402531f380c4f1fffb7ae50792be346df921b02b697fca97472971661d1a36f28ec5e055f85f2b41fb96a539d8054bb03150b7ee9f03b03bcbd4624beaffbeaebe049fe73284533ea989cefecea5c4e767926310da15c32367bfbbdf6f9cc5b15b0b0fdff42d4dd058c27a5fae6666ef61ee2a88d5ce1a6e9f4a386919217cde91eff9cbb58a075be92d1a275a2f3d5629d90d362be847819c6dd094cf76bd62e5f73e52dc7803afa37953ddc09300c2abb7683f6e8bf773b4cec590960eeda418395aa185755c45c7fdbca5ecd1f98cd0e9b31c785ec63db6bbfc4996b1c4182e8295875fc3d18875295f52680ff5600106d43d619f3f ...
note
一、引言 3背景介绍:在硬件设计领域,确保设计的正确性至关重要,而形式属性验证(FPV)是保证硬件设计质量的关键方法。 然而,编写用于验证的断言(如 SVA)是一项具有挑战性的工作,传统的方法存在一些局限性,需要不断改进和创新。 就像我们盖房子需要确保房子质量,而传统的检查方式不够完善,需要寻找更好的检查手段,这就引出了新的研究和工具的需求。
==摘要==形式属性验证(FPV)已经存在了数十年,并且已被证明能有效地发现复杂的寄存器传输级(RTL)错误。然而,诸如用 SystemVerilog 断言(SVA)编写的形式属性,即便对于有经验的用户来说,编写起来也既耗时又容易出错。先前的工作试图通过提高抽象层次来减轻这一负担,以便从高级规范生成 SVA。然而,这并不能消除对详细硬件行为进行推理和编写描述的人工工作。受异构硬件时代对 FPV 需求的增长以及大型语言模型(LLMs)进步的推动,我们开始探索 ==LLMs 是否能够捕捉 RTL 行为并生成正确的 SVA 属性==。首先,我们设计了一个基于 FPV 的 ...
RTL,FT,SUV,FPV之间的关系
RTL,FT,SUV,FPVRTL(Register Transfer Level):它是硬件设计过程中的一个关键层次,就像是盖房子的详细**==蓝图==**。你可以把它想象成一个详细的建筑设计图,用硬件描述语言(如 Verilog 或 VHDL)来描述硬件系统中的寄存器如何存储和传输数据,以及它们之间的逻辑关系和操作。它详细地说明了硬件的功能和结构,是实现硬件的基础,告诉硬件工程师如何把一个硬件系统给设计出来。
SVA(SystemVerilog Assertions):SVA 是一种专门的语言,类似于一份份检查==清单==。想象一下,你盖房子的时候会有一些要求,比如 “窗户必须能正常开关”“地板要能承受一定的重量”,SVA 就是用来描述硬件系统应该具备哪些行为和属性的语言。它可以规定信号在特定条件下应该是什么状态,或者某些操作必须遵循怎样的顺序,是用来对硬件设计的预期行为进行描述和约束的。
FT(Formal Property Verification Testbench):FT 是一个测试平台,就好比 ...
CCC
ccc
2022正方形泳池123456给定一个N×N的方格矩阵。左上角方格坐标为 (1,1),右下角方格坐标为 (N,N)。有 T 个方格内有树,这些方格的具体坐标已知。我们希望建立一个正方形的泳池。你的任务是找到一个尽可能大的正方形子矩阵,要求子矩阵内没有包含树的方格。输出满足条件的子矩阵的最大可能边长。
思路:
查找横坐标在这两课树中间的所有树,找到能确定上、下边界的树
240929
edb402531f380c4f1fffb7ae50792be3f1a888d9e17a8b7e16aa81cb61c0735183de6aa123bb10f2f514f68b35c0b083ccadda3777c64b66588ba67b0472b41a37937f6a0bdecfbe789d140fe0b7ec295586d096c7ef00ab2e0510afb3c77183192d2e049a88f13c2444d670d4b249f151992f05e53906376a229ab6dc2c382df0e51a48a1e9c058dfc2f63c1649588a9bebbaa44203de077fab35c372a30e8f625756bc5bd18daaa20620564e04e342656ce677ec9b563b860c08cc381271932b16b13c7fbd406c845c3ffe0063ad263f4a4293671d0322885dbf8879aee7026b42e99708b4ab4c9eeca0a0e46aace75c84d84b67e4105fe ...